GNU bug report logs - #64260
[PATCH] Use cgroups v2 file system

Previous Next

Package: guix-patches;

Reported by: Sam Lockart <sam <at> samlockart.com>

Date: Sat, 24 Jun 2023 06:24:02 UTC

Severity: normal

Tags: patch

Done: Ludovic Courtès <ludo <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: tracker <at> debbugs.gnu.org
Subject: bug#64260: closed ([PATCH] Use cgroups v2 file system)
Date: Tue, 08 Aug 2023 15:09:02 +0000
[Message part 1 (text/plain, inline)]
Your message dated Tue, 08 Aug 2023 17:08:26 +0200
with message-id <87leelr2qd.fsf <at> gnu.org>
and subject line Re: bug#64260: [PATCH] Use cgroups v2 file system
has caused the debbugs.gnu.org bug report #64260,
regarding [PATCH] Use cgroups v2 file system
to be marked as done.

(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)


-- 
64260: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=64260
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Sam Lockart <sam <at> samlockart.com>
To: "guix-patches <at> gnu.org" <guix-patches <at> gnu.org>
Subject: [PATCH] Use cgroups v2 file system
Date: Sat, 24 Jun 2023 03:11:26 +0000
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



[Message part 3 (message/rfc822, inline)]
From: Ludovic Courtès <ludo <at> gnu.org>
To: Sam Lockart <sam <at> samlockart.com>
Cc: 64260-done <at> debbugs.gnu.org
Subject: Re: bug#64260: [PATCH] Use cgroups v2 file system
Date: Tue, 08 Aug 2023 17:08:26 +0200
Hello Sam,

Sam Lockart <sam <at> 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 <at> 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’.


This bug report was last modified 2 years and 6 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.