[PATCH] mm/page_alloc: avoid hard lockups in __alloc_pages_bulk()

From: qiang . zhang
Date: Sat Jul 10 2021 - 08:02:10 EST


From: Zqiang <qiang.zhang@xxxxxxxxxxxxx>

The __alloc_pages_bulk() mainly used for batch allocation of
order-0 pages, in the case of holding pagesets.lock, if too
many pages are required, maybe trigger hard lockup watchdog.

Signed-off-by: Zqiang <qiang.zhang@xxxxxxxxxxxxx>
---
mm/page_alloc.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index d6e94cc8066c..1127db25507f 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -5315,6 +5315,8 @@ unsigned long __alloc_pages_bulk(gfp_t gfp, int preferred_nid,
else
page_array[nr_populated] = page;
nr_populated++;
+
+ touch_nmi_watchdog();
}

local_unlock_irqrestore(&pagesets.lock, flags);
--
2.25.1