Currently we are only able to bind the whole domain to some host nodes using the /domain/numatune/memory element. Numerous requests were made to support host<->guest numa node bindings, so this series tries to pinch an idea on how to do that using /domain/numatune/memnode elements.
That is incompatible with automatic numa placement (numad) since that makes no sense. Also this disables any live changes to numa parameters (the /domain/numatune/memory settings) since we cannot change the settings given to qemu. Martin Kletzander (6): conf, schema: add 'id' field for cells conf, schema: add support for numatune memnode element conf: add virDomainGetMemsForGuestCpu() qemu: purely a code movement qemu: memory-ram capability probing qemu: pass numa node binding preferences to qemu docs/formatdomain.html.in | 26 ++- docs/schemas/domaincommon.rng | 22 ++ src/conf/cpu_conf.c | 39 +++- src/conf/domain_conf.c | 259 ++++++++++++++++++--- src/conf/domain_conf.h | 4 + src/libvirt_private.syms | 1 + src/qemu/qemu_capabilities.c | 2 + src/qemu/qemu_capabilities.h | 1 + src/qemu/qemu_cgroup.c | 18 +- src/qemu/qemu_command.c | 160 +++++++++++-- src/qemu/qemu_command.h | 3 +- src/qemu/qemu_domain.c | 23 +- src/qemu/qemu_driver.c | 23 +- src/qemu/qemu_process.c | 3 +- src/util/virnuma.h | 14 +- tests/qemuxml2argvdata/qemuxml2argv-cpu-numa1.xml | 6 +- tests/qemuxml2argvdata/qemuxml2argv-cpu-numa2.xml | 6 +- tests/qemuxml2argvdata/qemuxml2argv-cpu-numa3.xml | 25 ++ .../qemuxml2argv-numatune-auto-prefer.xml | 29 +++ .../qemuxml2argv-numatune-auto.args | 6 + .../qemuxml2argv-numatune-auto.xml | 26 +++ .../qemuxml2argv-numatune-memnode-nocpu.xml | 25 ++ .../qemuxml2argv-numatune-memnodes-problematic.xml | 31 +++ .../qemuxml2argv-numatune-memnodes.args | 8 + .../qemuxml2argv-numatune-memnodes.xml | 31 +++ .../qemuxml2argv-numatune-prefer.args | 6 + .../qemuxml2argv-numatune-prefer.xml | 29 +++ tests/qemuxml2argvtest.c | 51 ++-- .../qemuxml2xmlout-cpu-numa1.xml | 28 +++ .../qemuxml2xmlout-cpu-numa2.xml | 28 +++ tests/qemuxml2xmltest.c | 4 + tests/qemuxmlnstest.c | 2 +- 32 files changed, 845 insertions(+), 94 deletions(-) create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-cpu-numa3.xml create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-numatune-auto-prefer.xml create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-numatune-auto.args create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-numatune-auto.xml create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-numatune-memnode-nocpu.xml create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-numatune-memnodes-problematic.xml create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-numatune-memnodes.args create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-numatune-memnodes.xml create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-numatune-prefer.args create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-numatune-prefer.xml create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-cpu-numa1.xml create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-cpu-numa2.xml -- 2.0.0 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list