2014-10-20 23:27:26

by Petr Holasek

[permalink] [raw]
Subject: [RFC][PATCH] add pagesize field to /proc/pid/numa_maps

There were some similar attempts to add vma's pagesize to numa_maps in the past,
so I've distilled the most straightforward one - adding pagesize field
expressing size in kbytes to each line. Although page size can be also obtained
from smaps file, adding pagesize to numa_maps makes the interface more compact
and easier to use without need for traversing other files.

New numa_maps output looks like that:

2aaaaac00000 default file=/dev/hugepages/hugepagefile huge pagesize=2097152 dirty=1 N0=1
7f302441a000 default file=/usr/lib64/libc-2.17.so pagesize=4096 mapped=65 mapmax=38 N0=65

Signed-off-by: Petr Holasek <[email protected]>
---
fs/proc/task_mmu.c | 3 +++
1 file changed, 3 insertions(+)

diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c
index 4e0388c..964c4de 100644
--- a/fs/proc/task_mmu.c
+++ b/fs/proc/task_mmu.c
@@ -1498,6 +1498,9 @@ static int show_numa_map(struct seq_file *m, void *v, int is_pid)
if (!md->pages)
goto out;

+ seq_puts(m, " pagesize=");
+ seq_printf(m, "%lu", vma_kernel_pagesize(vma));
+
if (md->anon)
seq_printf(m, " anon=%lu", md->anon);

--
1.9.3


2014-10-21 01:05:05

by David Rientjes

[permalink] [raw]
Subject: Re: [RFC][PATCH] add pagesize field to /proc/pid/numa_maps

On Tue, 21 Oct 2014, Petr Holasek wrote:

> There were some similar attempts to add vma's pagesize to numa_maps in the past,
> so I've distilled the most straightforward one - adding pagesize field
> expressing size in kbytes to each line. Although page size can be also obtained
> from smaps file, adding pagesize to numa_maps makes the interface more compact
> and easier to use without need for traversing other files.
>
> New numa_maps output looks like that:
>
> 2aaaaac00000 default file=/dev/hugepages/hugepagefile huge pagesize=2097152 dirty=1 N0=1
> 7f302441a000 default file=/usr/lib64/libc-2.17.so pagesize=4096 mapped=65 mapmax=38 N0=65
>
> Signed-off-by: Petr Holasek <[email protected]>

I guess the existing "huge" is insufficient on platforms that support
multiple hugepage sizes.

2014-10-22 12:14:13

by Petr Holasek

[permalink] [raw]
Subject: Re: [RFC][PATCH] add pagesize field to /proc/pid/numa_maps

On Mon, 20 Oct 2014, David Rientjes <[email protected]> wrote:
> On Tue, 21 Oct 2014, Petr Holasek wrote:
>
> > There were some similar attempts to add vma's pagesize to numa_maps in the past,
> > so I've distilled the most straightforward one - adding pagesize field
> > expressing size in kbytes to each line. Although page size can be also obtained
> > from smaps file, adding pagesize to numa_maps makes the interface more compact
> > and easier to use without need for traversing other files.
> >
> > New numa_maps output looks like that:
> >
> > 2aaaaac00000 default file=/dev/hugepages/hugepagefile huge pagesize=2097152 dirty=1 N0=1
> > 7f302441a000 default file=/usr/lib64/libc-2.17.so pagesize=4096 mapped=65 mapmax=38 N0=65
> >
> > Signed-off-by: Petr Holasek <[email protected]>
>
> I guess the existing "huge" is insufficient on platforms that support
> multiple hugepage sizes.

Why do you think so? pagesize= could also distinguish between multiple hugepage
sizes.

--
Petr Holasek
[email protected]