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.