Cgroups code fails if it's instructed to bind memory usage of a qemu process to a NUMA node which does not have any memory. First four patches are preliminary cleanups and the fix to keep the autoCpuset private data entry in the status XML necessary to modify autoNodeset in the future. The last patch modifies autoNodeset to be an intersection of the advice from numad with host NUMA node set containing memory, so that we don't ask for impossible things when setting up cgroups. Peter Krempa (5): util: bitmap: Modify virBitmapSubtract to virBitmapIntersect qemu: domain: Extract parsing and formatting of priv->autoNodeset qemu: domain: Store and restore autoCpuset to status XML qemu: process: Extract gathering of 'numad' placement into a function qemu: process: Don't put memoryless NUMA nodes into autoNodeset src/libvirt_private.syms | 2 +- src/qemu/qemu_domain.c | 102 ++++++++++++++++++++++++++++++++++++----------- src/qemu/qemu_process.c | 73 +++++++++++++++++++++++---------- src/util/virbitmap.c | 14 +++---- src/util/virbitmap.h | 2 +- tests/qemuxml2xmltest.c | 2 +- tests/virbitmaptest.c | 14 +++---- 7 files changed, 147 insertions(+), 62 deletions(-) -- 2.12.2 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list