[PATCH v9 01/10] mm: Allow deferred splitting of arbitrary anon large folios

Ryan Roberts ryan.roberts at arm.com
Thu Dec 7 08:12:02 PST 2023


In preparation for the introduction of anonymous multi-size THP, we
would like to be able to split them when they have unmapped subpages, in
order to free those unused pages under memory pressure. So remove the
artificial requirement that the large folio needed to be at least
PMD-sized.

Reviewed-by: Yu Zhao <yuzhao at google.com>
Reviewed-by: Yin Fengwei <fengwei.yin at intel.com>
Reviewed-by: Matthew Wilcox (Oracle) <willy at infradead.org>
Reviewed-by: David Hildenbrand <david at redhat.com>
Reviewed-by: Barry Song <v-songbaohua at oppo.com>
Tested-by: Kefeng Wang <wangkefeng.wang at huawei.com>
Tested-by: John Hubbard <jhubbard at nvidia.com>
Signed-off-by: Ryan Roberts <ryan.roberts at arm.com>
---
 mm/rmap.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/mm/rmap.c b/mm/rmap.c
index de9426ad0f1b..2a1e45e6419f 100644
--- a/mm/rmap.c
+++ b/mm/rmap.c
@@ -1518,11 +1518,11 @@ void page_remove_rmap(struct page *page, struct vm_area_struct *vma,
 		__lruvec_stat_mod_folio(folio, idx, -nr);
 
 		/*
-		 * Queue anon THP for deferred split if at least one
+		 * Queue anon large folio for deferred split if at least one
 		 * page of the folio is unmapped and at least one page
 		 * is still mapped.
 		 */
-		if (folio_test_pmd_mappable(folio) && folio_test_anon(folio))
+		if (folio_test_large(folio) && folio_test_anon(folio))
 			if (!compound || nr < nr_pmdmapped)
 				deferred_split_folio(folio);
 	}
-- 
2.25.1




More information about the linux-arm-kernel mailing list