Commit 0c3697118bb4f0991b11dafea038e4457813cae0

Authored by Rafael Aquini
Committed by Linus Torvalds
1 parent 6bee55f94f

Documentation/filesystems/proc.txt: add /proc/pid/numa_maps interface explanation snippet

Add a small section to proc.txt doc in order to document its
/proc/pid/numa_maps interface.  It does not introduce any functional
changes, just documentation.

Signed-off-by: Rafael Aquini <aquini@redhat.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: David Rientjes <rientjes@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

Showing 1 changed file with 33 additions and 0 deletions Side-by-side Diff

Documentation/filesystems/proc.txt
... ... @@ -145,6 +145,8 @@
145 145 stack Report full stack trace, enable via CONFIG_STACKTRACE
146 146 smaps a extension based on maps, showing the memory consumption of
147 147 each mapping and flags associated with it
  148 + numa_maps an extension based on maps, showing the memory locality and
  149 + binding policy as well as mem usage (in pages) of each mapping.
148 150 ..............................................................................
149 151  
150 152 For example, to get the status information of a process, all you have to do is
... ... @@ -498,6 +500,37 @@
498 500 The /proc/pid/pagemap gives the PFN, which can be used to find the pageflags
499 501 using /proc/kpageflags and number of times a page is mapped using
500 502 /proc/kpagecount. For detailed explanation, see Documentation/vm/pagemap.txt.
  503 +
  504 +The /proc/pid/numa_maps is an extension based on maps, showing the memory
  505 +locality and binding policy, as well as the memory usage (in pages) of
  506 +each mapping. The output follows a general format where mapping details get
  507 +summarized separated by blank spaces, one mapping per each file line:
  508 +
  509 +address policy mapping details
  510 +
  511 +00400000 default file=/usr/local/bin/app kernelpagesize_kB=4 mapped=1 active=0 N3=1
  512 +00600000 default file=/usr/local/bin/app kernelpagesize_kB=4 anon=1 dirty=1 N3=1
  513 +3206000000 default file=/lib64/ld-2.12.so kernelpagesize_kB=4 mapped=26 mapmax=6 N0=24 N3=2
  514 +320621f000 default file=/lib64/ld-2.12.so kernelpagesize_kB=4 anon=1 dirty=1 N3=1
  515 +3206220000 default file=/lib64/ld-2.12.so kernelpagesize_kB=4 anon=1 dirty=1 N3=1
  516 +3206221000 default kernelpagesize_kB=4 anon=1 dirty=1 N3=1
  517 +3206800000 default file=/lib64/libc-2.12.so kernelpagesize_kB=4 mapped=59 mapmax=21 active=55 N0=41 N3=18
  518 +320698b000 default file=/lib64/libc-2.12.so
  519 +3206b8a000 default file=/lib64/libc-2.12.so kernelpagesize_kB=4 anon=2 dirty=2 N3=2
  520 +3206b8e000 default file=/lib64/libc-2.12.so kernelpagesize_kB=4 anon=1 dirty=1 N3=1
  521 +3206b8f000 default kernelpagesize_kB=4 anon=3 dirty=3 active=1 N3=3
  522 +7f4dc10a2000 default kernelpagesize_kB=4 anon=3 dirty=3 N3=3
  523 +7f4dc10b4000 default kernelpagesize_kB=4 anon=2 dirty=2 active=1 N3=2
  524 +7f4dc1200000 default file=/anon_hugepage\040(deleted) huge kernelpagesize_kB=2048 anon=1 dirty=1 N3=1
  525 +7fff335f0000 default stack kernelpagesize_kB=4 anon=3 dirty=3 N3=3
  526 +7fff3369d000 default kernelpagesize_kB=4 mapped=1 mapmax=35 active=0 N3=1
  527 +
  528 +Where:
  529 +"address" is the starting address for the mapping;
  530 +"policy" reports the NUMA memory policy set for the mapping (see vm/numa_memory_policy.txt);
  531 +"mapping details" summarizes mapping data such as mapping type, page usage counters,
  532 +node locality page counters (N0 == node0, N1 == node1, ...) and the kernel page
  533 +size, in KB, that is backing the mapping up.
501 534  
502 535 1.2 Kernel data
503 536 ---------------