[PATCH] mm/page_alloc: Add some comments for specific scenarios to make it easier to understand why unmovable and reclaimable allocations can steal from moveable pageblocks by default.

From: Xiang Gao
Date: Wed Sep 18 2024 - 00:58:53 EST


From: gaoxiang17 <gaoxiang17@xxxxxxxxxx>

Signed-off-by: gaoxiang17 <gaoxiang17@xxxxxxxxxx>
---
mm/page_alloc.c | 7 +++++++
1 file changed, 7 insertions(+)

diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index 91ace8ca97e2..cc8a7a0772cb 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -1818,6 +1818,13 @@ static bool can_steal_fallback(unsigned int order, int start_mt)
if (order >= pageblock_order)
return true;

+ /*
+ * The reasons why unmovable and reclaimable allocations can steal from
+ * moveable pageblocks by default aside from the above comments, a different
+ * and better understood scenario is: System initializations are all movable
+ * pageblocks. If you want to alloc unmovable and reclaimable pages,
+ * you have to steal from moveable pageblocks or it may fail.
+ */
if (order >= pageblock_order / 2 ||
start_mt == MIGRATE_RECLAIMABLE ||
start_mt == MIGRATE_UNMOVABLE ||
--
2.34.1