First, let's check I got the fundamentals right:
As I understand it, NUMA systems are a (asymmetric) network of NUMA nodes, where a NUMA node is usually (but not always) a physical CPU package. In a NUMA system, each node has its own local memory, and the memory of the other nodes are available via a bus. The non-uniformity of the network means that obtaining foreign memory incurs a varying cost depending on locality of the two nodes involved in a memory fetch.
Now, assuming I got that right, here is some output from a real Linux system.
The kernel support NUMA (has the support compiled in at least):
$ grep NUMA /boot/config-`uname -r`
CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y
CONFIG_ARCH_WANTS_PROT_NUMA_PROT_NONE=y
CONFIG_ARCH_USES_NUMA_PROT_NONE=y
# CONFIG_NUMA_BALANCING_DEFAULT_ENABLED is not set
CONFIG_NUMA_BALANCING=y
CONFIG_NUMA=y
CONFIG_AMD_NUMA=y
CONFIG_X86_64_ACPI_NUMA=y
CONFIG_NUMA_EMU=y
CONFIG_USE_PERCPU_NUMA_NODE_ID=y
CONFIG_ACPI_NUMA=y
But there is only one NUMA node:
$ numactl -H
available: 1 nodes (0)
node 0 cpus: 0 1 2 3
node 0 size: 15955 MB
node 0 free: 5203 MB
node distances:
node 0
0: 10
Also note that there is only one path down the NUMA bus, from node 0 to node 0 (interestingly with distance 10, not 0). This implies that all memory accesses bear the same cost in terms of NUMA latency at least.
So, since there is only a single NUMA node, this is a regular SMP machine, with no NUMA capability, right? I think so.
Thanks.