From 2fe89e3b0f760eac73d7b27e27bf0746ccc3a5a3 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Sat, 30 Aug 2025 07:16:09 +0900 Subject: [PATCH] limits-util: drop cgroup v1 support from physical_memory() --- src/basic/limits-util.c | 31 +++++++++---------------------- 1 file changed, 9 insertions(+), 22 deletions(-) diff --git a/src/basic/limits-util.c b/src/basic/limits-util.c index 0b5dff3946..d48d67dbf7 100644 --- a/src/basic/limits-util.c +++ b/src/basic/limits-util.c @@ -36,32 +36,19 @@ uint64_t physical_memory(void) { return mem; } - r = cg_all_unified(); + r = cg_get_attribute(root, "memory.max", &value); + if (r == -ENOENT) /* Field does not exist on the system's top-level cgroup, hence don't + * complain. (Note that it might exist on our own root though, if we live + * in a cgroup namespace, hence check anyway instead of not even + * trying.) */ + return mem; if (r < 0) { - log_debug_errno(r, "Failed to determine root unified mode, ignoring cgroup memory limit: %m"); + log_debug_errno(r, "Failed to read memory.max cgroup attribute, ignoring cgroup memory limit: %m"); return mem; } - if (r > 0) { - r = cg_get_attribute(root, "memory.max", &value); - if (r == -ENOENT) /* Field does not exist on the system's top-level cgroup, hence don't - * complain. (Note that it might exist on our own root though, if we live - * in a cgroup namespace, hence check anyway instead of not even - * trying.) */ - return mem; - if (r < 0) { - log_debug_errno(r, "Failed to read memory.max cgroup attribute, ignoring cgroup memory limit: %m"); - return mem; - } - if (streq(value, "max")) - return mem; - } else { - r = cg_get_attribute(root, "memory.limit_in_bytes", &value); - if (r < 0) { - log_debug_errno(r, "Failed to read memory.limit_in_bytes cgroup attribute, ignoring cgroup memory limit: %m"); - return mem; - } - } + if (streq(value, "max")) + return mem; r = safe_atou64(value, &lim); if (r < 0) {