Re: [RFC PATCH] Add /proc/<pid>/numa_vamaps for numa node information

From: prakash.sangappa
Date: Thu Sep 13 2018 - 18:18:52 EST




On 09/12/2018 04:02 PM, Alexey Dobriyan wrote:
The /proc/pid/numa_vamaps shows mapped address ranges to numa node id
from where the physical pages are allocated.
All these files make the problem with useless dentry and /proc/*/* inode
instantiations worse (unlike top level /proc/* files which are
tolerable).

+address-range numa-node-id
+
+00400000-00410000 N1
+00410000-0047f000 N0
+0047f000-00480000 N2
+00480000-00481000 -
+00481000-004a0000 N0
+004a0000-004a2000 -
+004a2000-004aa000 N2
+004aa000-004ad000 N0
+004ad000-004ae000 -
'N' is useless data.

'N' could be dropped.


Parsing with awk won't work because field #3 is separated with space
but field #2 with '-'.

%08lx-%08lx kind of sucks: 32-bit get aligned data so parsing can be
faster by pointing to &p[8+1] but not on 64-bit.
If scanf("%lx-%lx") is used then leading zeroes are useless.

This was similar to how '/proc/*/maps' file presents the address range.
However, we could separate start and end address of the range with a
space, if that would be preferred.

Text is harder than it looks.

We could make each line fixed length. It could be "%016lx %016lx %04d"
i.e 4 digit for node number?

Please in the name of everything holy add new honest system call.