Re: [PATCH] mm/migrate: fix deadlock in migrate_pages_batch() on large folios

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 29 Jul 2024 09:58:02 +0800 Gao Xiang <hsiangkao@xxxxxxxxxxxxxxxxx> wrote:

> > For the fix, I think that we should still respect migrate_mode because
> > users may prefer migration success over blocking.
> > 
> > @@ -1492,11 +1492,17 @@ static int unmap_and_move_huge_page(new_folio_t get_new_folio,
> >   	return rc;
> >   }
> >   
> > -static inline int try_split_folio(struct folio *folio, struct list_head *split_folios)
> > +static inline int try_split_folio(struct folio *folio, struct list_head *split_folios,
> > +				  enum migrate_mode mode)
> >   {
> >   	int rc;
> >   
> > -	folio_lock(folio);
> > +	if (mode == MIGRATE_ASYNC) {
> > +		if (!folio_trylock(folio))
> > +			return -EAGAIN;
> > +	} else {
> > +		folio_lock(folio);
> > +	}
> >   	rc = split_folio_to_list(folio, split_folios);
> >   	folio_unlock(folio);
> >   	if (!rc)
> 
> Okay, yeah it looks better since it seems I missed the fallback
> part in migrate_pages_sync().
> 
> Let me send the next version to follow your advice, thanks.

The author seems to have disappeared.  Should we merge this as-is or
does someone want to take a look at developing a v2?

Thanks.




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux