Re: [PATCH] mm: fix long time stall from mm_populate

From: Minchan Kim
Date: Mon Feb 10 2020 - 22:50:19 EST


On Mon, Feb 10, 2020 at 05:10:21PM -0800, Matthew Wilcox wrote:
> On Mon, Feb 10, 2020 at 04:19:58PM -0800, Minchan Kim wrote:
> > filemap_fault
> > find a page form page(PG_uptodate|PG_readahead|PG_writeback)
>
> Uh ... That shouldn't be possible.

Please see shrink_page_list. Vmscan uses PG_reclaim to accelerate
page reclaim when the writeback is done so the page will have both
flags at the same time and the PG reclaim could be regarded as
PG_readahead in fault conext.

>
> /*
> * Same bit is used for PG_readahead and PG_reclaim.
> */
> if (PageWriteback(page))
> return;
>
> ClearPageReadahead(page);
>