Subject: bug#64260: closed (Re: bug#64260: [PATCH] Use cgroups v2 file system)

From: [email-masked] (GNU bug Tracking System)
Date: Tue, 08 Aug 2023 15:09:02 +0000

Your bug report

#64260: [PATCH] Use cgroups v2 file system

which was filed against the guix-patches package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
64260: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=64260
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#64260: [PATCH] Use cgroups v2 file system
From: Ludovic Courtès <[email-masked]>
To: Sam Lockart <[email-masked]>
Cc: [email-masked]
Date: Tue, 08 Aug 2023 17:08:26 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello Sam,

Sam Lockart <[email-masked]> 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 <[email-masked]> 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’.

Subject: [PATCH] Use cgroups v2 file system
From: Sam Lockart <[email-masked]>
To: "[email-masked]" <[email-masked]>
Date: Sat, 24 Jun 2023 03:11:26 +0000
List-Id: <debbugs-submit.debbugs.gnu.org>

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
---
 gnu/system/file-systems.scm | 27 +++++++--------------------
 1 file changed, 7 insertions(+), 20 deletions(-)

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,
-- 
2.39.2