On 2022/6/9 16:13, mawupeng wrote:
在 2022/6/8 18:00, Anshuman Khandual 写道:
On 6/8/22 06:56, mawupeng wrote:
在 2022/6/7 20:25, David Hildenbrand 写道:
On 07.06.22 11:38, Wupeng Ma wrote:
From: Ma Wupeng <mawupeng1@xxxxxxxxxx>
For a system only have limited mirrored memory or some numa node
without
mirrored memory, the per node vmemmap page_structs prefer to allocate
memory from mirrored region, which will lead to vmemmap_verify() in
vmemmap_populate_basepages() report lots of warning message.
This patch demote the "potential offnode page_structs" warning
messages
to debug level to avoid a very long print during bootup.
Signed-off-by: Ma Wupeng <mawupeng1@xxxxxxxxxx>
---
mm/sparse-vmemmap.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/mm/sparse-vmemmap.c b/mm/sparse-vmemmap.c
index f4fa61dbbee3..78debdb89eb1 100644
--- a/mm/sparse-vmemmap.c
+++ b/mm/sparse-vmemmap.c
@@ -528,7 +528,7 @@ void __meminit vmemmap_verify(pte_t *pte, int
node,
int actual_node = early_pfn_to_nid(pfn);
if (node_distance(actual_node, node) > LOCAL_DISTANCE)
- pr_warn("[%lx-%lx] potential offnode page_structs\n",
+ pr_debug("[%lx-%lx] potential offnode page_structs\n",
start, end - 1);
}
This will possibly hide it in environments where this might indeed
indicate performance issues.
What about a pr_warn_once()?
Sure.
This will works. We can certainly use a pr_warn_once().
Why not pr_warn_ratelimited() like in the previous patch ?
Function vmemmap_populate_basepages() is used to populate base pages.
System with huge memory will produce lots lots of warning message
during this populate process even with ratelimited. This may lead to slow
startup.
I think pr_warn_once is better, the memblock_alloc fallback is not frequent,
but vmemmap_verify will verify each memory and print a lot.
Thanks for reviewing.
.
.