]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu_dbus: use emulator cgroup for dbus-daemon
authorPavel Hrdina <phrdina@redhat.com>
Wed, 28 Oct 2020 02:20:37 +0000 (03:20 +0100)
committerPavel Hrdina <phrdina@redhat.com>
Tue, 3 Nov 2020 20:26:32 +0000 (21:26 +0100)
All other helper processes are moved to cgroup with QEMU emulator
thread as we keep the root VM cgroup without any processes. This
assumption is validated in qemuRestoreCgroupState() which is called
when libvirtd is restarted and reconnected to all running VMs.

Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
src/qemu/qemu_dbus.c
src/qemu/qemu_dbus.h
src/qemu/qemu_extdevice.c

index a0567e55a3b6fd61f82030a76b0aa52f0d414ccb..ffcf83e5da515eddb72596be97cd292a7ec4ec7f 100644 (file)
@@ -148,7 +148,8 @@ qemuDBusStop(virQEMUDriverPtr driver,
 
 int
 qemuDBusSetupCgroup(virQEMUDriverPtr driver,
-                    virDomainObjPtr vm)
+                    virDomainObjPtr vm,
+                    virCgroupPtr cgroup)
 {
     g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(driver);
     qemuDomainObjPrivatePtr priv = vm->privateData;
@@ -167,7 +168,7 @@ qemuDBusSetupCgroup(virQEMUDriverPtr driver,
         return -1;
     }
 
-    return virCgroupAddProcess(priv->cgroup, cpid);
+    return virCgroupAddProcess(cgroup, cpid);
 }
 
 int
index 3c2145a223aad282702375e766ac5328f865e1e7..e3ce1330fda2ce23f5352e9cf63534cc862ab438 100644 (file)
@@ -35,4 +35,5 @@ int qemuDBusVMStateAdd(virDomainObjPtr vm, const char *id);
 void qemuDBusVMStateRemove(virDomainObjPtr vm, const char *id);
 
 int qemuDBusSetupCgroup(virQEMUDriverPtr driver,
-                        virDomainObjPtr vm);
+                        virDomainObjPtr vm,
+                        virCgroupPtr cgroup);
index 2fb71dd3344563defa14f1eef89b84d32afa7af2..8fe7ceaa10f3b1e8b3e003a28320934cbc270305 100644 (file)
@@ -280,7 +280,7 @@ qemuExtDevicesSetupCgroup(virQEMUDriverPtr driver,
     virDomainDefPtr def = vm->def;
     size_t i;
 
-    if (qemuDBusSetupCgroup(driver, vm) < 0)
+    if (qemuDBusSetupCgroup(driver, vm, cgroup) < 0)
         return -1;
 
     for (i = 0; i < def->nvideos; i++) {