* [PATCH] mm/page_alloc: clear page tag refs when onlining hotplugged memory
@ 2026-10-20 16:10 Zenghui Yu
0 siblings, 0 replies; only message in thread
From: Zenghui Yu @ 2026-10-20 16:10 UTC (permalink / raw)
To: linux-mm, linux-kernel
Cc: akpm, vbabka, surenb, mhocko, brendan.jackman, hannes, ziy,
Zenghui Yu (Huawei)
From: "Zenghui Yu (Huawei)" <zenghui.yu@linux.dev>
Onlining hotplugged memory (e.g., a dev_dax device bound to kmem) with
CONFIG_MEM_ALLOC_PROFILING_DEBUG triggers:
alloc_tag was not set
WARNING: ./include/linux/alloc_tag.h:166 at __pgalloc_tag_sub+0x1fc/0x254
Call trace:
__pgalloc_tag_sub+0x1fc/0x254 (P)
__free_pages_ok+0x14c/0x6ac
__free_pages_core+0xa8/0x188
generic_online_page+0x14/0x20
online_pages+0x220/0x3b0
memory_subsys_online+0xfc/0x198
device_online+0x58/0xe0
state_store+0xf0/0xf8
Onlined pages enter the buddy allocator without ever being allocated, so
their allocation tag references are NULL. The free path expects a valid
tag or a CODETAG_EMPTY mark and warns otherwise. Other paths feeding
never-allocated pages into the buddy (memblock_free_pages(),
init_cma_reserved_pageblock(), free_reserved_pages()) mark them with
clear_page_tag_ref() first; the hotplug onlining path was missed.
Mark the pages as not tagged in the MEMINIT_HOTPLUG branch of
__free_pages_core(), where PageOffline and the refcount are already
reset.
Signed-off-by: Zenghui Yu (Huawei) <zenghui.yu@linux.dev>
---
mm/page_alloc.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index e71e514ea18d..9561f2cd873e 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -1604,6 +1604,7 @@ void __meminit __free_pages_core(struct page *page, unsigned int order,
VM_WARN_ON_ONCE(PageReserved(p));
__ClearPageOffline(p);
set_page_count(p, 0);
+ clear_page_tag_ref(p);
}
adjust_managed_page_count(page, nr_pages);
--
2.56.0
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2026-10-20 16:11 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-20 16:10 [PATCH] mm/page_alloc: clear page tag refs when onlining hotplugged memory Zenghui Yu
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.