[libvirt] [PATCH 10/13] Convert QEMU driver to use virCgroupNewMachine

Daniel P. Berrange berrange at redhat.com
Tue Jul 23 15:21:15 UTC 2013


From: "Daniel P. Berrange" <berrange at redhat.com>

Convert the QEMU driver code to use the new atomic API
for setup of cgroups

Signed-off-by: Daniel P. Berrange <berrange at redhat.com>
---
 src/qemu/qemu_cgroup.c | 29 +++++++++++------------------
 1 file changed, 11 insertions(+), 18 deletions(-)

diff --git a/src/qemu/qemu_cgroup.c b/src/qemu/qemu_cgroup.c
index 6455f50..bca8630 100644
--- a/src/qemu/qemu_cgroup.c
+++ b/src/qemu/qemu_cgroup.c
@@ -633,7 +633,6 @@ qemuInitCgroup(virQEMUDriverPtr driver,
 {
     int ret = -1;
     qemuDomainObjPrivatePtr priv = vm->privateData;
-    virCgroupPtr parent = NULL;
     virQEMUDriverConfigPtr cfg = virQEMUDriverGetConfig(driver);
 
     if (!cfg->privileged)
@@ -664,32 +663,26 @@ qemuInitCgroup(virQEMUDriverPtr driver,
                        vm->def->resource->partition);
         goto cleanup;
     }
-    /* We only auto-create the default partition. In other
-     * cases we expec the sysadmin/app to have done so */
-    if (virCgroupNewPartition(vm->def->resource->partition,
-                              STREQ(vm->def->resource->partition, "/machine"),
-                              cfg->cgroupControllers,
-                              &parent) < 0) {
+
+    if (virCgroupNewMachine(vm->def->name,
+                            "qemu",
+                            cfg->privileged,
+                            vm->def->uuid,
+                            NULL,
+                            vm->pid,
+                            false,
+                            vm->def->resource->partition,
+                            cfg->cgroupControllers,
+                            &priv->cgroup) < 0) {
         if (virCgroupNewIgnoreError())
             goto done;
 
         goto cleanup;
     }
 
-    if (virCgroupNewDomainPartition(parent,
-                                    "qemu",
-                                    vm->def->name,
-                                    true,
-                                    &priv->cgroup) < 0)
-        goto cleanup;
-
-    if (virCgroupAddTask(priv->cgroup, vm->pid) < 0)
-        goto cleanup;
-
 done:
     ret = 0;
 cleanup:
-    virCgroupFree(&parent);
     virObjectUnref(cfg);
     return ret;
 }
-- 
1.8.1.4




More information about the libvir-list mailing list