With cgroups v2 working with controllers is a bit more complicated then with cgroups v1 where the controller had to be mounted. There are two files, cgroups.controllers and cgroup.subtree_control. The file cgroup.controllers lists all controllers enabled in the current cgroup and cgroups.subtree_control, as the name suggest, controls which controllers are enabled for a subtree of cgroups. Now the issue here is that the current code doesn't make any difference if the @parent variable is NULL or not because ../cgroup.subtree_control will list the same controllers as ./cgroup.controllers. The whole point of the @parent variable is when we are building the cgroup topology ourselves without systemd help we need to detect which controllers are enabled in the parent cgroup in order to enable them for the current cgroup as well and for that we need to check cgroup.controllers of the parent group. Signed-off-by: Pavel Hrdina <phrdina@xxxxxxxxxx> --- src/util/vircgroupv2.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/util/vircgroupv2.c b/src/util/vircgroupv2.c index fb97b7fd2a..530e5d2ce9 100644 --- a/src/util/vircgroupv2.c +++ b/src/util/vircgroupv2.c @@ -255,7 +255,7 @@ virCgroupV2ParseControllersFile(virCgroupPtr group, char **tmp; if (parent) { - contFile = g_strdup_printf("%s%s/cgroup.subtree_control", + contFile = g_strdup_printf("%s%s/cgroup.controllers", parent->unified.mountPoint, NULLSTR_EMPTY(parent->unified.placement)); } else { -- 2.26.2