From: gaoxiang17 Date: Fri, 20 Sep 2024 12:20:30 +0000 (+0800) Subject: mm/page_alloc: add some detailed comments in can_steal_fallback X-Git-Tag: microblaze-v6.16~78^2~269 X-Git-Url: http://git.monstr.eu/?a=commitdiff_plain;h=6025ea5abbe5d813d6a41c78e6ea14259fb503f4;p=linux-2.6-microblaze.git mm/page_alloc: add some detailed comments in can_steal_fallback [akpm@linux-foundation.org: tweak grammar, fit to 80 cols] Link: https://lkml.kernel.org/r/20240920122030.159751-1-gxxa03070307@gmail.com Signed-off-by: gaoxiang17 Signed-off-by: Andrew Morton --- diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 7a2853b7967d..a887ba2cc91d 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -1855,6 +1855,14 @@ static bool can_steal_fallback(unsigned int order, int start_mt) if (order >= pageblock_order) return true; + /* + * Movable pages won't cause permanent fragmentation, so when you alloc + * small pages, you just need to temporarily steal unmovable or + * reclaimable pages that are closest to the request size. After a + * while, memory compaction may occur to form large contiguous pages, + * and the next movable allocation may not need to steal. Unmovable and + * reclaimable allocations need to actually steal pages. + */ if (order >= pageblock_order / 2 || start_mt == MIGRATE_RECLAIMABLE || start_mt == MIGRATE_UNMOVABLE ||