]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
vircgroupv2: store enabled controllers
authorPavel Hrdina <phrdina@redhat.com>
Mon, 22 Jul 2019 12:44:05 +0000 (14:44 +0200)
committerPavel Hrdina <phrdina@redhat.com>
Thu, 25 Jul 2019 08:51:53 +0000 (10:51 +0200)
In cgroups v2 when a new group is created by default no controller is
enabled so the detection code will not detect any controllers.

When enabling the controllers we should also store them for the group.

Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Acked-by: Peter Krempa <pkrempa@redhat.com>
src/util/vircgroupv2.c

index 9c44b3473e07a70fb4b03c4c7c1d37bc7795a8f9..af3192c99cd7f0d9fbf3479f58753503aea276f4 100644 (file)
@@ -365,7 +365,8 @@ virCgroupV2PathOfController(virCgroupPtr group,
  *          0 on success
  */
 static int
-virCgroupV2EnableController(virCgroupPtr parent,
+virCgroupV2EnableController(virCgroupPtr group,
+                            virCgroupPtr parent,
                             int controller,
                             bool report)
 {
@@ -391,6 +392,8 @@ virCgroupV2EnableController(virCgroupPtr parent,
         return -2;
     }
 
+    group->unified.controllers |= 1 << controller;
+
     return 0;
 }
 
@@ -432,14 +435,14 @@ virCgroupV2MakeGroup(virCgroupPtr parent ATTRIBUTE_UNUSED,
             }
 
             if (virCgroupV2HasController(parent, VIR_CGROUP_CONTROLLER_CPU) &&
-                virCgroupV2EnableController(parent,
+                virCgroupV2EnableController(group, parent,
                                             VIR_CGROUP_CONTROLLER_CPU,
                                             true) < 0) {
                 return -1;
             }
 
             if (virCgroupV2HasController(parent, VIR_CGROUP_CONTROLLER_CPUSET) &&
-                virCgroupV2EnableController(parent,
+                virCgroupV2EnableController(group, parent,
                                             VIR_CGROUP_CONTROLLER_CPUSET,
                                             true) < 0) {
                 return -1;
@@ -456,7 +459,7 @@ virCgroupV2MakeGroup(virCgroupPtr parent ATTRIBUTE_UNUSED,
                 if (i == VIR_CGROUP_CONTROLLER_CPUACCT)
                     continue;
 
-                rc = virCgroupV2EnableController(parent, i, false);
+                rc = virCgroupV2EnableController(group, parent, i, false);
                 if (rc < 0) {
                     if (rc == -2) {
                         virResetLastError();