~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/admin-guide/numastat.rst

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /Documentation/admin-guide/numastat.rst (Version linux-6.12-rc7) and /Documentation/admin-guide/numastat.rst (Version linux-6.2.16)


  1 ===============================                     1 ===============================
  2 Numa policy hit/miss statistics                     2 Numa policy hit/miss statistics
  3 ===============================                     3 ===============================
  4                                                     4 
  5 /sys/devices/system/node/node*/numastat             5 /sys/devices/system/node/node*/numastat
  6                                                     6 
  7 All units are pages. Hugepages have separate c      7 All units are pages. Hugepages have separate counters.
  8                                                     8 
  9 The numa_hit, numa_miss and numa_foreign count      9 The numa_hit, numa_miss and numa_foreign counters reflect how well processes
 10 are able to allocate memory from nodes they pr     10 are able to allocate memory from nodes they prefer. If they succeed, numa_hit
 11 is incremented on the preferred node, otherwis     11 is incremented on the preferred node, otherwise numa_foreign is incremented on
 12 the preferred node and numa_miss on the node w     12 the preferred node and numa_miss on the node where allocation succeeded.
 13                                                    13 
 14 Usually preferred node is the one local to the     14 Usually preferred node is the one local to the CPU where the process executes,
 15 but restrictions such as mempolicies can chang     15 but restrictions such as mempolicies can change that, so there are also two
 16 counters based on CPU local node. local_node i     16 counters based on CPU local node. local_node is similar to numa_hit and is
 17 incremented on allocation from a node by CPU o     17 incremented on allocation from a node by CPU on the same node. other_node is
 18 similar to numa_miss and is incremented on the     18 similar to numa_miss and is incremented on the node where allocation succeeds
 19 from a CPU from a different node. Note there i     19 from a CPU from a different node. Note there is no counter analogical to
 20 numa_foreign.                                      20 numa_foreign.
 21                                                    21 
 22 In more detail:                                    22 In more detail:
 23                                                    23 
 24 =============== ==============================     24 =============== ============================================================
 25 numa_hit        A process wanted to allocate m     25 numa_hit        A process wanted to allocate memory from this node,
 26                 and succeeded.                     26                 and succeeded.
 27                                                    27 
 28 numa_miss       A process wanted to allocate m     28 numa_miss       A process wanted to allocate memory from another node,
 29                 but ended up with memory from      29                 but ended up with memory from this node.
 30                                                    30 
 31 numa_foreign    A process wanted to allocate o     31 numa_foreign    A process wanted to allocate on this node,
 32                 but ended up with memory from      32                 but ended up with memory from another node.
 33                                                    33 
 34 local_node      A process ran on this node's C     34 local_node      A process ran on this node's CPU,
 35                 and got memory from this node.     35                 and got memory from this node.
 36                                                    36 
 37 other_node      A process ran on a different n     37 other_node      A process ran on a different node's CPU
 38                 and got memory from this node.     38                 and got memory from this node.
 39                                                    39 
 40 interleave_hit  Interleaving wanted to allocat     40 interleave_hit  Interleaving wanted to allocate from this node
 41                 and succeeded.                     41                 and succeeded.
 42 =============== ==============================     42 =============== ============================================================
 43                                                    43 
 44 For easier reading you can use the numastat ut     44 For easier reading you can use the numastat utility from the numactl package
 45 (http://oss.sgi.com/projects/libnuma/). Note t     45 (http://oss.sgi.com/projects/libnuma/). Note that it only works
 46 well right now on machines with a small number     46 well right now on machines with a small number of CPUs.
 47                                                    47 
 48 Note that on systems with memoryless nodes (wh     48 Note that on systems with memoryless nodes (where a node has CPUs but no
 49 memory) the numa_hit, numa_miss and numa_forei     49 memory) the numa_hit, numa_miss and numa_foreign statistics can be skewed
 50 heavily. In the current kernel implementation,     50 heavily. In the current kernel implementation, if a process prefers a
 51 memoryless node (i.e.  because it is running o     51 memoryless node (i.e.  because it is running on one of its local CPU), the
 52 implementation actually treats one of the near     52 implementation actually treats one of the nearest nodes with memory as the
 53 preferred node. As a result, such allocation w     53 preferred node. As a result, such allocation will not increase the numa_foreign
 54 counter on the memoryless node, and will skew      54 counter on the memoryless node, and will skew the numa_hit, numa_miss and
 55 numa_foreign statistics of the nearest node.       55 numa_foreign statistics of the nearest node.
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php