[<prev] [next>] [day] [month] [year] [list]
Message-Id: <20211001172725.105824-1-eric.dumazet@gmail.com>
Date: Fri, 1 Oct 2021 10:27:25 -0700
From: Eric Dumazet <eric.dumazet@...il.com>
To: Andrew Morton <akpm@...ux-foundation.org>
Cc: linux-kernel <linux-kernel@...r.kernel.org>,
linux-mm <linux-mm@...ck.org>,
Eric Dumazet <edumazet@...gle.com>,
Eric Dumazet <eric.dumazet@...il.com>
Subject: [PATCH] mm/vmalloc: make show_numa_info() aware of hugepage mappings
From: Eric Dumazet <edumazet@...gle.com>
show_numa_info() can be slightly faster, by skipping
over hugepages directly.
Signed-off-by: Eric Dumazet <edumazet@...gle.com>
---
mm/vmalloc.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/mm/vmalloc.c b/mm/vmalloc.c
index 42219f3d12b567fc64f54cd3e2f1e3398e261a2c..d51f5e1c95b4e01add8b952b6c5e2de2a1139e46 100644
--- a/mm/vmalloc.c
+++ b/mm/vmalloc.c
@@ -3853,6 +3853,7 @@ static void show_numa_info(struct seq_file *m, struct vm_struct *v)
{
if (IS_ENABLED(CONFIG_NUMA)) {
unsigned int nr, *counters = m->private;
+ unsigned int step = 1U << vm_area_page_order(v);
if (!counters)
return;
@@ -3864,9 +3865,8 @@ static void show_numa_info(struct seq_file *m, struct vm_struct *v)
memset(counters, 0, nr_node_ids * sizeof(unsigned int));
- for (nr = 0; nr < v->nr_pages; nr++)
- counters[page_to_nid(v->pages[nr])]++;
-
+ for (nr = 0; nr < v->nr_pages; nr += step)
+ counters[page_to_nid(v->pages[nr])] += step;
for_each_node_state(nr, N_HIGH_MEMORY)
if (counters[nr])
seq_printf(m, " N%u=%u", nr, counters[nr]);
--
2.33.0.800.g4c38ced690-goog
Powered by blists - more mailing lists