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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On 05/09/2018 04:31 PM, Dave Hansen wrote:
On 05/07/2018 06:16 PM, prakash.sangappa wrote:
It will be /proc/<pid>/numa_vamaps. Yes, the behavior will be
different with respect to seeking. Output will still be text and
the format will be same.

I want to get feedback on this approach.
I think it would be really great if you can write down a list of the
things you actually want to accomplish.  Dare I say: you need a
requirements list.

The numa_vamaps approach continues down the path of an ever-growing list
of highly-specialized /proc/<pid> files.  I don't think that is
sustainable, even if it has been our trajectory for many years.

Pagemap wasn't exactly a shining example of us getting new ABIs right,
but it sounds like something along those is what we need.

Just sent out a V2 patch.  This patch simplifies the file content. It
only provides VA range to numa node id information.

The requirement is basically observability for performance analysis.

- Need to be able to determine VA range to numa node id information.
  Which also gives an idea of which range has memory allocated.

- The proc file /proc/<pid>/numa_vamaps is in text so it is easy to
  directly view.

The V2 patch supports seeking to a particular process VA from where
the application could read the VA to  numa node id information.

Also added the 'PTRACE_MODE_READ_REALCREDS' check when opening the
file /proc file as was indicated by Michal Hacko

The VA range to numa node information from this file can be used by pmap.

Here is a sample from a prototype change to pmap(procps) showing
numa node information, gathered from the new 'numa_vamaps' file.

$ ./rpmap -L -A 00000000006f8000,00007f5f730fe000 31423|more
31423:   bash
00000000006f8000     16K  N1 rw--- bash
00000000006fc000      4K  N0 rw--- bash
00000000006fd000      4K  N0 rw---   [ anon ]
00000000006fe000      8K  N1 rw---   [ anon ]
0000000000700000      4K  N0 rw---   [ anon ]
0000000000701000      4K  N1 rw---   [ anon ]
0000000000702000      4K  N0 rw---   [ anon ]
0000000000ce8000     52K  N0 rw---   [ anon ]
0000000000cf5000      4K  N1 rw---   [ anon ]
0000000000cf6000     28K  N0 rw---   [ anon ]
0000000000cfd000      4K  N1 rw---   [ anon ]
0000000000cfe000     28K  N0 rw---   [ anon ]
0000000000d05000    504K  N1 rw---   [ anon ]
0000000000d83000      8K  N0 rw---   [ anon ]
0000000000d85000    932K  N1 rw---   [ anon ]
0000000000e6e000      4K   - rw---   [ anon ]
0000000000e6f000    168K  N1 rw---   [ anon ]
00007f5f72ef4000      4K  N2 r-x-- libnss_files-2.23.so
00007f5f72ef5000     40K  N0 r-x-- libnss_files-2.23.so
00007f5f72eff000   2044K   - ----- libnss_files-2.23.so
00007f5f730fe000      4K  N0 r---- libnss_files-2.23.so
 total             3868K

-Prakash.




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux