See 12/14 for explanation and seeing the fix in action.
Michal Prívozník (14):
virnuma: Move virNumaNodesetToCPUset() our of WITH_NUMACTL
virnuma: Introduce virNumaCPUSetToNodeset()
virnumamock: Introduce virNumaGetNodeOfCPU() mock
qemuxml2argvtest: Use virnuma mock
qemuxml2argvdata: Adjust maximum NUMA node used
qemuxml2argvdata: Extend vCPUs placement in
memory-hotplug-dimm-addr.xml
qemuxml2argvmock: Drop virNuma* mocks
qemu: Move cpuset preference evaluation into a separate function
qemu: Fix qemuDomainGetEmulatorPinInfo()
qemu: Add @nodemaskRet argument to qemuBuildMemoryBackendProps()
qemu: Add @nodemask argument to qemuBuildThreadContextProps()
qemuBuildThreadContextProps: Prune .node-afinity wrt <emulatorpin/>
docs: Document memory allocation and emulator pinning limitation
NEWS: Document recent thread-context bug fix
NEWS.rst | 7 +
docs/formatdomain.rst | 4 +-
src/libvirt_private.syms | 2 +
src/qemu/qemu_command.c | 90 +++++++----
src/qemu/qemu_command.h | 8 +-
src/qemu/qemu_domain.c | 18 +++
src/qemu/qemu_domain.h | 5 +
src/qemu/qemu_driver.c | 11 +-
src/qemu/qemu_hotplug.c | 2 +-
src/qemu/qemu_process.c | 9 +-
src/util/virnuma.c | 148 ++++++++++++------
src/util/virnuma.h | 5 +-
tests/meson.build | 2 +-
...emory-hotplug-dimm-addr.x86_64-latest.args | 2 +-
.../memory-hotplug-dimm-addr.xml | 2 +-
.../migrate-numa-unaligned.args | 4 +-
.../migrate-numa-unaligned.xml | 4 +-
.../numatune-memnode-restrictive-mode.xml | 4 +-
...-unavailable-restrictive.x86_64-latest.err | 2 +-
...mnode-unavailable-strict.x86_64-latest.err | 2 +-
tests/qemuxml2argvdata/numatune-memnode.args | 4 +-
.../numatune-memnode.x86_64-5.2.0.args | 4 +-
.../numatune-memnode.x86_64-latest.args | 4 +-
tests/qemuxml2argvdata/numatune-memnode.xml | 4 +-
...umatune-static-nodeset-exceed-hostnode.err | 2 +-
tests/qemuxml2argvmock.c | 41 -----
tests/qemuxml2argvtest.c | 5 +-
...memory-hotplug-dimm-addr.x86_64-latest.xml | 2 +-
tests/qemuxml2xmloutdata/numatune-memnode.xml | 4 +-
.../linux-basic/system/cpu/cpu0/node0 | 1 +
.../linux-basic/system/cpu/cpu1/node0 | 1 +
.../linux-basic/system/cpu/cpu10/node2 | 1 +
.../linux-basic/system/cpu/cpu11/node2 | 1 +
.../linux-basic/system/cpu/cpu12/node3 | 1 +
.../linux-basic/system/cpu/cpu13/node3 | 1 +
.../linux-basic/system/cpu/cpu14/node3 | 1 +
.../linux-basic/system/cpu/cpu15/node3 | 1 +
.../linux-basic/system/cpu/cpu2/node0 | 1 +
.../linux-basic/system/cpu/cpu3/node0 | 1 +
.../linux-basic/system/cpu/cpu4/node1 | 1 +
.../linux-basic/system/cpu/cpu5/node1 | 1 +
.../linux-basic/system/cpu/cpu6/node1 | 1 +
.../linux-basic/system/cpu/cpu7/node1 | 1 +
.../linux-basic/system/cpu/cpu8/node2 | 1 +
.../linux-basic/system/cpu/cpu9/node2 | 1 +
.../linux-caches/system/cpu/cpu0/node0 | 1 +
.../linux-caches/system/cpu/cpu1/node0 | 1 +
.../linux-caches/system/cpu/cpu2/node0 | 1 +
.../linux-caches/system/cpu/cpu3/node0 | 1 +
.../linux-caches/system/cpu/cpu4/node0 | 1 +
.../linux-caches/system/cpu/cpu5/node0 | 1 +
.../linux-caches/system/cpu/cpu6/node0 | 1 +
.../linux-caches/system/cpu/cpu7/node0 | 1 +
.../system/cpu/cpu0/node0 | 1 +
.../linux-resctrl/system/cpu/cpu0/node0 | 1 +
.../linux-resctrl/system/cpu/cpu1/node0 | 1 +
.../linux-resctrl/system/cpu/cpu10/node1 | 1 +
.../linux-resctrl/system/cpu/cpu11/node1 | 1 +
.../linux-resctrl/system/cpu/cpu2/node0 | 1 +
.../linux-resctrl/system/cpu/cpu3/node0 | 1 +
.../linux-resctrl/system/cpu/cpu4/node0 | 1 +
.../linux-resctrl/system/cpu/cpu5/node0 | 1 +
.../linux-resctrl/system/cpu/cpu6/node1 | 1 +
.../linux-resctrl/system/cpu/cpu7/node1 | 1 +
.../linux-resctrl/system/cpu/cpu8/node1 | 1 +
.../linux-resctrl/system/cpu/cpu9/node1 | 1 +
tests/virnumamock.c | 42 +++++
67 files changed, 317 insertions(+), 163 deletions(-)
create mode 120000 tests/vircaps2xmldata/linux-basic/system/cpu/cpu0/node0
create mode 120000 tests/vircaps2xmldata/linux-basic/system/cpu/cpu1/node0
create mode 120000 tests/vircaps2xmldata/linux-basic/system/cpu/cpu10/node2
create mode 120000 tests/vircaps2xmldata/linux-basic/system/cpu/cpu11/node2
create mode 120000 tests/vircaps2xmldata/linux-basic/system/cpu/cpu12/node3
create mode 120000 tests/vircaps2xmldata/linux-basic/system/cpu/cpu13/node3
create mode 120000 tests/vircaps2xmldata/linux-basic/system/cpu/cpu14/node3
create mode 120000 tests/vircaps2xmldata/linux-basic/system/cpu/cpu15/node3
create mode 120000 tests/vircaps2xmldata/linux-basic/system/cpu/cpu2/node0
create mode 120000 tests/vircaps2xmldata/linux-basic/system/cpu/cpu3/node0
create mode 120000 tests/vircaps2xmldata/linux-basic/system/cpu/cpu4/node1
create mode 120000 tests/vircaps2xmldata/linux-basic/system/cpu/cpu5/node1
create mode 120000 tests/vircaps2xmldata/linux-basic/system/cpu/cpu6/node1
create mode 120000 tests/vircaps2xmldata/linux-basic/system/cpu/cpu7/node1
create mode 120000 tests/vircaps2xmldata/linux-basic/system/cpu/cpu8/node2
create mode 120000 tests/vircaps2xmldata/linux-basic/system/cpu/cpu9/node2
create mode 120000 tests/vircaps2xmldata/linux-caches/system/cpu/cpu0/node0
create mode 120000 tests/vircaps2xmldata/linux-caches/system/cpu/cpu1/node0
create mode 120000 tests/vircaps2xmldata/linux-caches/system/cpu/cpu2/node0
create mode 120000 tests/vircaps2xmldata/linux-caches/system/cpu/cpu3/node0
create mode 120000 tests/vircaps2xmldata/linux-caches/system/cpu/cpu4/node0
create mode 120000 tests/vircaps2xmldata/linux-caches/system/cpu/cpu5/node0
create mode 120000 tests/vircaps2xmldata/linux-caches/system/cpu/cpu6/node0
create mode 120000 tests/vircaps2xmldata/linux-caches/system/cpu/cpu7/node0
create mode 120000
tests/vircaps2xmldata/linux-resctrl-skx-twocaches/system/cpu/cpu0/node0
create mode 120000 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu0/node0
create mode 120000 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu1/node0
create mode 120000 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu10/node1
create mode 120000 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu11/node1
create mode 120000 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu2/node0
create mode 120000 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu3/node0
create mode 120000 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu4/node0
create mode 120000 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu5/node0
create mode 120000 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu6/node1
create mode 120000 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu7/node1
create mode 120000 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu8/node1
create mode 120000 tests/vircaps2xmldata/linux-resctrl/system/cpu/cpu9/node1
--
2.39.2