1
0
mirror of https://gitlab.com/libvirt/libvirt.git synced 2025-03-07 17:28:15 +00:00

vircgroupv2: store enabled controllers

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>
This commit is contained in:
Pavel Hrdina 2019-07-22 14:44:05 +02:00
parent 7b77f3a11e
commit 56fdf3f025

View 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();