Message ID | hC7GiiLV5qxJ0WSDTRmDmy4V2wsy6yraRPcoC4UC2WAhEyNCb69vCjBYKYVHmF1NS65HyWYD-jBliH_Gq5LwAO_2WPlhqq2ekBWI0FYyFxc=@samlockart.com |
---|---|
State | New |
Headers | show |
Series | [bug#64260] Use cgroups v2 file system | expand |
I've been running this patch for a few days with an elogind-based system and haven't had any issues. This patch also fixes rootless podman with elogind, which is very nice. -bjc
Hi, On Thu, 06 Jul 2023 04:52:34 +0800, Brian Cully via Guix-patches via wrote: > > I've been running this patch for a few days with an elogind-based system > and haven't had any issues. This patch also fixes rootless podman with > elogind, which is very nice. > > -bjc I'm not familiar with cgroup, but the current %control-groups is a requirement for docker-shepherd-service: --8<---------------cut here---------------start------------->8--- (shepherd-service (documentation "Docker daemon.") (provision '(dockerd)) (requirement '(containerd dbus-system elogind file-system-/sys/fs/cgroup/blkio file-system-/sys/fs/cgroup/cpu file-system-/sys/fs/cgroup/cpuset file-system-/sys/fs/cgroup/devices file-system-/sys/fs/cgroup/memory file-system-/sys/fs/cgroup/pids networking udev)) --8<---------------cut here---------------end--------------->8--- Thanks
Hello Sam, Sam Lockart <sam@samlockart.com> skribis: > cgroup v2 is the next generation of the control groups API. > This patch replaces the cgroup v1 file system with the unified > cgroup v2 file system. > > cgroup v2 allows for things like containerd/podman to run rootless containers and opens guix system up to running things like Kubernetes. > > * gnu/system/file-systems.scm: Use cgroups v2 file system [...] Hilton Chain <hako@ultrarare.space> skribis: > I'm not familiar with cgroup, but the current %control-groups is > a requirement for docker-shepherd-service: Good point! Finally applied, with the change Hilton suggested. This passes just fine: make check-system TESTS="docker basic elogind" Thanks, Ludo’.
diff --git a/gnu/system/file-systems.scm b/gnu/system/file-systems.scm index 0ff5a0dcf6..59e04bcecf 100644 --- a/gnu/system/file-systems.scm +++ b/gnu/system/file-systems.scm @@ -445,26 +445,13 @@ (define %immutable-store (flags '(read-only bind-mount no-atime)))) (define %control-groups - (let ((parent (file-system - (device "cgroup") - (mount-point "/sys/fs/cgroup") - (type "tmpfs") - (check? #f)))) - (cons parent - (map (lambda (subsystem) - (file-system - (device "cgroup") - (mount-point (string-append "/sys/fs/cgroup/" subsystem)) - (type "cgroup") - (check? #f) - (options subsystem) - (create-mount-point? #t) - - ;; This must be mounted after, and unmounted before the - ;; parent directory. - (dependencies (list parent)))) - '("cpuset" "cpu" "cpuacct" "memory" "devices" "freezer" - "blkio" "perf_event" "pids"))))) + ;; The cgroup2 file system. + (list (file-system + (device "none") + (mount-point "/sys/fs/cgroup") + (type "cgroup2") + (check? #f) + (create-mount-point? #f)))) (define %elogind-file-systems ;; We don't use systemd, but these file systems are needed for elogind,