From 803747f01a832f56920ae38935e4017bbc8e7de1 Mon Sep 17 00:00:00 2001 From: Jacob Weinstock Date: Sat, 27 Apr 2024 15:40:00 -0600 Subject: [PATCH] Make cgroups v2 the default: cgroups v2 has been out since 2015. Not having to set a kernel parameter helps improve the user experience by not requiring it when it is required by services in a build. Making this the default was discussed back in 2021. Signed-off-by: Jacob Weinstock --- pkg/init/cmd/rc.init/main.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pkg/init/cmd/rc.init/main.go b/pkg/init/cmd/rc.init/main.go index dd0344496..63665dcfd 100644 --- a/pkg/init/cmd/rc.init/main.go +++ b/pkg/init/cmd/rc.init/main.go @@ -225,9 +225,7 @@ func doMounts() { // misc /proc mounted fs mountSilent("binfmt_misc", "/proc/sys/fs/binfmt_misc", "binfmt_misc", noexec|nosuid|nodev, "") - if isCgroupV2() { - mount("cgroup2", "/sys/fs/cgroup", "cgroup2", noexec|nosuid|nodev, "") - } else { + if isCgroupV1() { // mount cgroup root tmpfs mount("cgroup_root", "/sys/fs/cgroup", "tmpfs", nodev|noexec|nosuid, "mode=755,size=10m") // mount cgroups filesystems for all enabled cgroups @@ -243,6 +241,8 @@ func doMounts() { // many things assume systemd mkdir("/sys/fs/cgroup/systemd", 0555) mount("cgroup", "/sys/fs/cgroup/systemd", "cgroup", 0, "none,name=systemd") + } else { + mount("cgroup2", "/sys/fs/cgroup", "cgroup2", noexec|nosuid|nodev, "") } // make / rshared @@ -423,14 +423,14 @@ func doShutdown(action string) { os.Exit(0) } -func isCgroupV2() bool { +func isCgroupV1() bool { dt, err := os.ReadFile("/proc/cmdline") if err != nil { log.Printf("error reading /proc/cmdline: %v", err) return false } for _, s := range strings.Fields(string(dt)) { - if s == "linuxkit.unified_cgroup_hierarchy=1" { + if s == "linuxkit.unified_cgroup_hierarchy=0" { return true } }