Loading... (original) (raw)
The JVM code used to discover which numa nodes it can bind assumes that nodes are consecutive and tries to bind from 0 to numa_max_node(), i.e. 0 to the highest node number available on the system. However, at least on PPC64 that assumption is not always true. For instance, the following numa
topology:
available: 4 nodes (0-1,16-17)
node 0 cpus: 0 8 16 24 32
node 0 size: 130706 MB
node 0 free: 145 MB
node 1 cpus: 40 48 56 64 72
node 1 size: 0 MB
node 1 free: 0 MB
node 16 cpus: 80 88 96 104 112
node 16 size: 130630 MB
node 16 free: 529 MB
node 17 cpus: 120 128 136 144 152
node 17 size: 0 MB
node 17 free: 0 MB
node distances:
node 0 1 16 17
0: 10 20 40 40
1: 20 10 40 40
16: 40 40 10 20
17: 40 40 20 10
Also, some nodes can also be present in the topology but contain no memory (a memory-less node in libnuma terms).