NUMA CPUs do not appear in KVM guest the same as they do on a physical machine
Issue
-
NUMA CPUs do not appear in KVM guest the same as they do on a physical machine
-
Looking at the NUMA CPU list, a physical machine appears differently to a KVM guest, despite the fact NUMA nodes are configured in the guest XML
-
Guest XML contains interleaved CPUs like:
<cpu> <numa> <cell cpus='0,2,4,6,8,10,12,14,16,18,20,22' memory='524288'></cell> <cell cpus='1,3,5,7,9,11,13,15,17,19,21,23' memory='524288'></cell> </numa> </cpu>
-
CPU Node list appears like:
$ cat /sys/devices/system/node/node0/cpulist 0,2-23 $ cat /sys/devices/system/node/node1/cpulist 1
But the physical NUMA layout is:
$ cat /sys/devices/system/node/node0/cpulist 0,2,4,6,8,10,12,14,16,18,20,22 $ cat /sys/devices/system/node/node1/cpulist 1,3,5,7,9,11,13,15,17,19,21,23
-
The
numactl
hardware layout shows all CPUs except one in a NUMA Node inside the guest. -
Starting a KVM guest on RHEL7 fails with:
error: Failed to start domain guestname error: unsupported configuration: disjoint NUMA cpu ranges are not supported with this QEMU
Environment
- Red Hat Enterprise Linux 7.1 and earlier
- Red Hat Enterprise Linux 6.7 and earlier
- KVM virtualization and libvirt
- NUMA system
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.