Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 1/1] package/docker-engine: prefer cgroup v2 with kernel >=5.4 and no systemd
@ 2025-08-18 13:24 Fiona Klute via buildroot
  2025-08-19  3:53 ` Christian Stewart via buildroot
  0 siblings, 1 reply; 8+ messages in thread
From: Fiona Klute via buildroot @ 2025-08-18 13:24 UTC (permalink / raw)
  To: buildroot; +Cc: Christian Stewart, Fiona Klute (WIWA)

From: "Fiona Klute (WIWA)" <fiona.klute@gmx.de>

Without systemd package/docker-engine requires another way to mount
/sys/fs/cgroup, so far unconditionally provided by
BR2_PACKAGE_CGROUPFS_MOUNT for cgroup v1. However, it is preferable to
use cgroup v2 if possible. Whether Docker can use cgroup v2 depends on
the kernel version, the Docker documentation lists the requirement as
"v4.15 or later (v5.2 or later is recommended)" [1].

Select BR2_PACKAGE_CGROUPFS_V2_MOUNT instead of
BR2_PACKAGE_CGROUPFS_MOUNT if the kernel headers match the recommended
version.

[1] https://docs.docker.com/engine/containers/runmetrics/#running-docker-on-cgroup-v2

Signed-off-by: Fiona Klute (WIWA) <fiona.klute@gmx.de>
---
I noticed Docker was unconditionally pulling in
BR2_PACKAGE_CGROUPFS_MOUNT while investigating a Docker warning about
memory cgroup not being available, and indeed my kernel config has
CONFIG_MEMCG enabled, but not the "highly discouraged" (to quote its
kernel config description) CONFIG_MEMCG_V1. Switching to v2 on
sufficiently recent kernels seems equally highly preferable.

I'm not sure if package/moby-buildkit should be adjusted to match so
the dependencies won't conflict. Current Buildkit definitely works
with cgroup v2, but the packaged version is fairly old.

 package/docker-engine/Config.in | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/package/docker-engine/Config.in b/package/docker-engine/Config.in
index 6338eeeef1..d591ee4e3b 100644
--- a/package/docker-engine/Config.in
+++ b/package/docker-engine/Config.in
@@ -7,7 +7,8 @@ config BR2_PACKAGE_DOCKER_ENGINE
 	depends on BR2_USE_MMU # containerd
 	depends on BR2_PACKAGE_LIBSECCOMP_ARCH_SUPPORTS # libseccomp
 	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17 # libseccomp
-	select BR2_PACKAGE_CGROUPFS_MOUNT if !BR2_PACKAGE_SYSTEMD # runtime dependency
+	select BR2_PACKAGE_CGROUPFS_V2_MOUNT if !BR2_PACKAGE_SYSTEMD && BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 # runtime dependency
+	select BR2_PACKAGE_CGROUPFS_MOUNT if !BR2_PACKAGE_SYSTEMD && !BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4 # runtime dependency
 	select BR2_PACKAGE_CONTAINERD # runtime dependency
 	select BR2_PACKAGE_HOST_GO
 	select BR2_PACKAGE_IPTABLES # runtime dependency
-- 
2.50.1

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2025-08-29  9:15 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-08-18 13:24 [Buildroot] [PATCH 1/1] package/docker-engine: prefer cgroup v2 with kernel >=5.4 and no systemd Fiona Klute via buildroot
2025-08-19  3:53 ` Christian Stewart via buildroot
2025-08-24  9:33   ` Romain Naour via buildroot
2025-08-25 10:24     ` Fiona Klute via buildroot
2025-08-26 10:18       ` Thomas Petazzoni via buildroot
2025-08-27 15:22         ` Romain Naour via buildroot
2025-08-28  9:11           ` Peter Korsgaard
2025-08-29  9:15             ` Fiona Klute via buildroot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox