mm/page_alloc: add some detailed comments in can_steal_fallback
authorgaoxiang17 <gaoxiang17@xiaomi.com>
Fri, 20 Sep 2024 12:20:30 +0000 (20:20 +0800)
committerAndrew Morton <akpm@linux-foundation.org>
Tue, 14 Jan 2025 06:40:42 +0000 (22:40 -0800)
[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 <gaoxiang17@xiaomi.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
mm/page_alloc.c

index 7a2853b..a887ba2 100644 (file)
@@ -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 ||