Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

mm: fix NUMA accounting in numastat.txt

In Documentation/numastat.txt, it confused me. For example, there are
nodes [0,1] in system.

barrios:~$ cat /proc/zoneinfo | egrep 'numa|zone'
Node 0, zone DMA
numa_hit 33226
numa_miss 1739
numa_foreign 27978
..
..
Node 1, zone DMA
numa_hit 307
numa_miss 46900
numa_foreign 0

1) In node 0, NUMA_MISS means it wanted to allocate page
in node 1 but ended up with page in node 0

2) In node 0, NUMA_FOREIGN means it wanted to allocate page
in node 0 but ended up with page from Node 1.

But now, numastat explains it oppositely about (MISS, FOREIGN).
Let's fix up with viewpoint of zone.

Signed-off-by: Minchan Kim <minchan.kim@gmail.com>
Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Acked-by: Christoph Lameter <cl@linux-foundation.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

authored by

Minchan Kim and committed by
Linus Torvalds
5d3bc270 a6f9edd6

+4 -4
+4 -4
Documentation/numastat.txt
··· 7 7 8 8 numa_hit A process wanted to allocate memory from this node, 9 9 and succeeded. 10 - numa_miss A process wanted to allocate memory from this node, 11 - but ended up with memory from another. 12 - numa_foreign A process wanted to allocate on another node, 13 - but ended up with memory from this one. 10 + numa_miss A process wanted to allocate memory from another node, 11 + but ended up with memory from this node. 12 + numa_foreign A process wanted to allocate on this node, 13 + but ended up with memory from another one. 14 14 local_node A process ran on this node and got memory from it. 15 15 other_node A process ran on this node and got memory from another node. 16 16 interleave_hit Interleaving wanted to allocate from this node