Re: [PATCH v2 1/3] madvise: Convert madvise_cold_or_pageout_pte_range() to use folios

From: Vishal Moola
Date: Wed Dec 07 2022 - 18:45:42 EST


On Wed, Dec 7, 2022 at 3:09 PM Matthew Wilcox <willy@xxxxxxxxxxxxx> wrote:
>
> On Wed, Dec 07, 2022 at 03:01:50PM -0800, Vishal Moola (Oracle) wrote:
> > @@ -424,28 +425,29 @@ static int madvise_cold_or_pageout_pte_range(pmd_t *pmd,
> > page = vm_normal_page(vma, addr, ptent);
> > if (!page || is_zone_device_page(page))
> > continue;
> > + folio = page_folio(page);
>
> Maybe we should add a vm_normal_folio() first? That way we could get
> rid of the 'struct page' in this function entirely.

Yeah, I'll do that. Many other callers will benefit from it later as well.

> > @@ -453,13 +455,13 @@ static int madvise_cold_or_pageout_pte_range(pmd_t *pmd,
> > }
> >
> > /*
> > - * Do not interfere with other mappings of this page and
> > - * non-LRU page.
> > + * Do not interfere with other mappings of this folio and
> > + * non-LRU folio.
> > */
> > - if (!PageLRU(page) || page_mapcount(page) != 1)
> > + if (!folio_test_lru(folio))
>
> Why has the test for folio_mapcount() disappeared?

Oops, that page_mapcount() should have been replaced
with a folio_mapcount(). It appears I accidentally removed it.