[libvirt] [PATCH 8/9] qemu_cgroup: dont put qemu main thread into wrong cgroup

Henning Schild henning.schild at siemens.com
Tue Feb 23 15:58:43 UTC 2016


Eventually all qemu threads are supposed to be in the final cgroup
structure in one of the leaf cgroups (vcpuX, emulator). They should
never be in the main machine cgroup. That is for all thread related
controllers like cpuset, cpu, and cpuacct.
By excluding the threading related controllers we do not put the
task into the machine cgroup controllers just to move it out to
the emulator subgroup later.

Signed-off-by: Henning Schild <henning.schild at siemens.com>
---
 src/qemu/qemu_cgroup.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/qemu/qemu_cgroup.c b/src/qemu/qemu_cgroup.c
index 41a583c..99fb5bf 100644
--- a/src/qemu/qemu_cgroup.c
+++ b/src/qemu/qemu_cgroup.c
@@ -789,7 +789,8 @@ qemuInitCgroup(virQEMUDriverPtr driver,
         goto cleanup;
     }
 
-    if (virCgroupAddTask(priv->cgroup, vm->pid, -1) < 0) {
+    if (virCgroupAddTask(priv->cgroup, vm->pid,
+                         ~VIR_CGROUP_THREAD_CONTROLLER_MASK) < 0) {
         virErrorPtr saved = virSaveLastError();
         virCgroupRemove(priv->cgroup);
         virCgroupFree(&priv->cgroup);
-- 
2.4.10




More information about the libvir-list mailing list