[PATCH 0/5] qemu: Prefer -numa cpu over -numa node,cpus=

Michal Privoznik mprivozn at redhat.com
Fri May 22 14:14:10 UTC 2020


Another round of patches to catch up with the latest command line
building recommendations. This time, the winner is: -numa cpu

Thing is, the way vCPUs are assigned to NUMA nodes is not very
deterministic right now. QEMU relies on this weird mapping where firstly
threads are iterated over, then cores, then (possibly) dies and then
sockets. So they came up with a better schema:

  -numa cpu,node-id=N,socket-id=S,die-id=D,core-id=C,thread-id=T

where everything is specified on the command line. Long story short,
some QEMU code is copied over to keep status quo (or, whatever you
want). It was buried down down (include/hw/i386/topology.h). I wanted to
allow users configure the vCPU topology too, but then decided not to
because neither Libvirt nor QEMU can really guarantee the topology will
look the same in the guest (at least in my testing with cpu
mode='host-passthrough' it didn't). Or, what you're proposing? I can
post them as a follow up if needed.

Michal Prívozník (5):
  qemuBuildNumaArgStr: Move vars into loops
  qemuBuildNumaArgStr: Use g_autofree on @nodeBackends
  qemuBuildNumaArgStr: Separate out old style of building CPU list
  qemu: Prefer -numa cpu over -numa node,cpus=
  virCPUDefParseXML: Parse uint using virXPathUInt

 src/conf/cpu_conf.c                           |  14 +-
 src/qemu/qemu_command.c                       | 168 +++++++++++++++---
 .../hugepages-nvdimm.x86_64-latest.args       |   4 +-
 ...memory-default-hugepage.x86_64-latest.args |  10 +-
 .../memfd-memory-numa.x86_64-latest.args      |  10 +-
 ...y-hotplug-nvdimm-access.x86_64-latest.args |   4 +-
 ...ry-hotplug-nvdimm-align.x86_64-latest.args |   4 +-
 ...ry-hotplug-nvdimm-label.x86_64-latest.args |   4 +-
 ...ory-hotplug-nvdimm-pmem.x86_64-latest.args |   4 +-
 ...ory-hotplug-nvdimm-ppc64.ppc64-latest.args |   4 +-
 ...hotplug-nvdimm-readonly.x86_64-latest.args |   4 +-
 .../memory-hotplug-nvdimm.x86_64-latest.args  |   4 +-
 ...vhost-user-fs-fd-memory.x86_64-latest.args |   4 +-
 ...vhost-user-fs-hugepages.x86_64-latest.args |   4 +-
 ...host-user-gpu-secondary.x86_64-latest.args |   3 +-
 .../vhost-user-vga.x86_64-latest.args         |   3 +-
 16 files changed, 195 insertions(+), 53 deletions(-)

-- 
2.26.2




More information about the libvir-list mailing list