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.