[PATCH] mm: page_alloc: speed up fallbacks in rmqueue_bulk() fix
From: Johannes Weiner
Date: Wed Apr 09 2025 - 09:56:52 EST
reset rmqueue_mode in rmqueue_buddy() error loop, per Yunsheng Lin
Signed-off-by: Johannes Weiner <hannes@xxxxxxxxxxx>
---
mm/page_alloc.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index dfb2b3f508af..7ffeeb0f62d3 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -2983,7 +2983,6 @@ struct page *rmqueue_buddy(struct zone *preferred_zone, struct zone *zone,
{
struct page *page;
unsigned long flags;
- enum rmqueue_mode rmqm = RMQUEUE_NORMAL;
do {
page = NULL;
@@ -2996,6 +2995,8 @@ struct page *rmqueue_buddy(struct zone *preferred_zone, struct zone *zone,
if (alloc_flags & ALLOC_HIGHATOMIC)
page = __rmqueue_smallest(zone, order, MIGRATE_HIGHATOMIC);
if (!page) {
+ enum rmqueue_mode rmqm = RMQUEUE_NORMAL;
+
page = __rmqueue(zone, order, migratetype, alloc_flags, &rmqm);
/*
--
2.49.0