Re: [PATCH v3 4/6] mm: Demote warning message in vmemmap_verify() to debug level

From: mawupeng
Date: Thu Jun 09 2022 - 04:13:54 EST




在 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.

Thanks for reviewing.

.