]> xenbits.xensource.com Git - libvirt.git/commitdiff
vircgroup.c: add virCgroupSetupCpusetCpus()
authorDaniel Henrique Barboza <danielhb413@gmail.com>
Mon, 17 Feb 2020 21:29:13 +0000 (16:29 -0500)
committerJán Tomko <jtomko@redhat.com>
Sun, 23 Feb 2020 13:02:23 +0000 (14:02 +0100)
The code from qemuSetupCgroupCpusetCpus() and virLXCCgroupSetupCpusetTune()
can be centralized in a new helper called virCgroupSetupCpusetCpus().

Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
src/libvirt_private.syms
src/lxc/lxc_cgroup.c
src/qemu/qemu_cgroup.c
src/util/vircgroup.c
src/util/vircgroup.h

index 3d73fa39b0253634bcafe6be98c6de02739a0317..0a791f8825c7b8cf64dbc021bbcce6810a8e0916 100644 (file)
@@ -1731,6 +1731,7 @@ virCgroupSetupBlkioDeviceReadIops;
 virCgroupSetupBlkioDeviceWeight;
 virCgroupSetupBlkioDeviceWriteBps;
 virCgroupSetupBlkioDeviceWriteIops;
+virCgroupSetupCpusetCpus;
 virCgroupSupportsCpuBW;
 virCgroupTerminateMachine;
 
index eac1ee1ee0e111760a898d34f878d72e2b38bdef..618063bf4398ee17cc0c00a2364d9573418c0b21 100644 (file)
@@ -69,14 +69,9 @@ static int virLXCCgroupSetupCpusetTune(virDomainDefPtr def,
     virDomainNumatuneMemMode mode;
 
     if (def->placement_mode != VIR_DOMAIN_CPU_PLACEMENT_MODE_AUTO &&
-        def->cpumask) {
-        if (!(mask = virBitmapFormat(def->cpumask)))
-            return -1;
-
-        if (virCgroupSetCpusetCpus(cgroup, mask) < 0)
-            goto cleanup;
-        /* free mask to make sure we won't use it in a wrong way later */
-        VIR_FREE(mask);
+        def->cpumask &&
+        virCgroupSetupCpusetCpus(cgroup, def->cpumask) < 0) {
+        return -1;
     }
 
     if (virDomainNumatuneGetMode(def->numa, -1, &mode) < 0 ||
index 0c2f5f1b25994ff6f4c90ae2c243772520d36c77..ee08b990649c0d7936de76cb9dc61c37dd31d3b8 100644 (file)
@@ -1165,19 +1165,7 @@ int
 qemuSetupCgroupCpusetCpus(virCgroupPtr cgroup,
                           virBitmapPtr cpumask)
 {
-    int ret = -1;
-    char *new_cpus = NULL;
-
-    if (!(new_cpus = virBitmapFormat(cpumask)))
-        goto cleanup;
-
-    if (virCgroupSetCpusetCpus(cgroup, new_cpus) < 0)
-        goto cleanup;
-
-    ret = 0;
- cleanup:
-    VIR_FREE(new_cpus);
-    return ret;
+    return virCgroupSetupCpusetCpus(cgroup, cpumask);
 }
 
 
index 261e63f6eccfe9aeb0fd655b525c92d124f02038..dcbd55c0f17a821436bf5229d47f274f85ec8eb6 100644 (file)
@@ -3666,3 +3666,18 @@ virCgroupSetupBlkioDeviceWriteBps(virCgroupPtr cgroup, const char *path,
 
     return 0;
 }
+
+
+int
+virCgroupSetupCpusetCpus(virCgroupPtr cgroup, virBitmapPtr cpumask)
+{
+    g_autofree char *new_cpus = NULL;
+
+    if (!(new_cpus = virBitmapFormat(cpumask)))
+        return -1;
+
+    if (virCgroupSetCpusetCpus(cgroup, new_cpus) < 0)
+        return -1;
+
+    return 0;
+}
index d50a8d69d42f95f97396695f00933cd9ebb6885b..55132dedb6f8a63cf216518464ee39dfe5c46eb1 100644 (file)
@@ -245,6 +245,7 @@ int virCgroupGetCpusetMemoryMigrate(virCgroupPtr group, bool *migrate);
 
 int virCgroupSetCpusetCpus(virCgroupPtr group, const char *cpus);
 int virCgroupGetCpusetCpus(virCgroupPtr group, char **cpus);
+int virCgroupSetupCpusetCpus(virCgroupPtr cgroup, virBitmapPtr cpumask);
 
 int virCgroupRemove(virCgroupPtr group);