This series picks up the cgroups work i started earlier. My initial patches got in and later reverted before 1.3.1. The problem the series is solving is about qemu-threads becoming runnable on pcpus outside the pinning masks configured for the machine. That only happens for a short time before the thread is moved to its final cpuset. But it can disturb other load on the system or can lead to qemu never starting. (qemu main thread ends up on a pcpu with busy high prio rt-task). The problem in the original series was the lack of understanding that one virCgroup can cover all controllers. Instead of just touching cpusets the patches had side effects on all the other controllers (memory, blkio etc.) Again the general idea is to put all threads right into the correct cgroups and to not move them around. But this series touches only the cpu, cpuset, and cpuacct controllers. That are the ones relevant to threads and that are the controllers the threading sub-groups have mounted. Patches 1, 2, and 9 deal with asserting correct behaviour. They are optional. But given the complexity of the "bringup" and the importance of getting that right, i think they should go in as well! The tricky bits are in patches 5 and 8, i kept them as simple as possible. The series is based on v1.3.1. Henning Schild (9): vircgroup: one central point for adding tasks to cgroups vircgroup: add assertion to allow cgroup controllers to stay empty vircgroup: introduce controller mask for threads util: cgroups do not implicitly add task to new machine cgroup qemu_cgroup: put qemu right into emulator sub-cgroup qemu_cgroup: use virCgroupAddTask instead of virCgroupMoveTask vircgroup: add controller mask to virCgroupAddTask qemu_cgroup: dont put qemu main thread into wrong cgroup qemu_cgroup: assert threading cgroup layout for machine cgroup src/libvirt_private.syms | 3 +- src/lxc/lxc_cgroup.c | 11 ++++ src/lxc/lxc_controller.c | 4 +- src/qemu/qemu_cgroup.c | 30 +++++++-- src/qemu/qemu_driver.c | 2 +- src/qemu/qemu_process.c | 8 +-- src/util/vircgroup.c | 155 ++++++++--------------------------------------- src/util/vircgroup.h | 13 +++- src/util/vircgrouppriv.h | 1 + 9 files changed, 81 insertions(+), 146 deletions(-) -- 2.4.10 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list