]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
cgroup-util: drop 'controller' argument from cg_get_keyed_attribute() and cg_is_empty()
authorYu Watanabe <watanabe.yu+github@gmail.com>
Fri, 29 Aug 2025 23:29:37 +0000 (08:29 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Mon, 17 Nov 2025 12:31:50 +0000 (21:31 +0900)
The argument is completely unused. Let's drop it.

13 files changed:
src/basic/cgroup-util.c
src/basic/cgroup-util.h
src/cgtop/cgtop.c
src/core/cgroup.c
src/core/service.c
src/login/loginctl.c
src/machine/machine.c
src/machine/machinectl.c
src/oom/oomd-util.c
src/oom/test-oomd-util.c
src/shared/cgroup-show.c
src/test/test-cgroup-setup.c
src/test/test-cgroup-util.c

index c31f2a1b05cb55f49d9cf4939e196cf5d6486e91..b01b7b6a3fbd890fe94a5662f18b9f1e43fa2970 100644 (file)
@@ -610,7 +610,7 @@ int cg_pidref_get_path(const PidRef *pidref, char **ret_path) {
         return 0;
 }
 
-int cg_is_empty(const char *controller, const char *path) {
+int cg_is_empty(const char *path) {
         _cleanup_free_ char *t = NULL;
         int r;
 
@@ -623,7 +623,7 @@ int cg_is_empty(const char *controller, const char *path) {
         if (empty_or_root(path))
                 return false;
 
-        r = cg_get_keyed_attribute(controller, path, "cgroup.events", STRV_MAKE("populated"), &t);
+        r = cg_get_keyed_attribute(path, "cgroup.events", STRV_MAKE("populated"), &t);
         if (r == -ENOENT)
                 return true;
         if (r < 0)
@@ -1551,7 +1551,6 @@ int cg_get_owner(const char *path, uid_t *ret_uid) {
 }
 
 int cg_get_keyed_attribute(
-                const char *controller,
                 const char *path,
                 const char *attribute,
                 char * const *keys,
@@ -1570,7 +1569,7 @@ int cg_get_keyed_attribute(
          *
          * If the attribute file doesn't exist at all returns ENOENT, if any key is not found returns ENXIO. */
 
-        r = cg_get_path(controller, path, attribute, &filename);
+        r = cg_get_path(SYSTEMD_CGROUP_CONTROLLER, path, attribute, &filename);
         if (r < 0)
                 return r;
 
index ac02d68dcd62ffbe6df621983c9c8ba6d634753a..9c534ac594c181e68dc0f3a61efd7c5427ee179d 100644 (file)
@@ -181,7 +181,7 @@ int cg_get_attribute(const char *path, const char *attribute, char **ret);
 int cg_get_attribute_as_uint64(const char *path, const char *attribute, uint64_t *ret);
 int cg_get_attribute_as_bool(const char *path, const char *attribute);
 
-int cg_get_keyed_attribute(const char *controller, const char *path, const char *attribute, char * const *keys, char **values);
+int cg_get_keyed_attribute(const char *path, const char *attribute, char * const *keys, char **values);
 
 int cg_get_owner(const char *path, uid_t *ret_uid);
 
@@ -191,7 +191,7 @@ int cg_get_xattr(const char *path, const char *name, char **ret, size_t *ret_siz
 int cg_get_xattr_bool(const char *path, const char *name);
 int cg_remove_xattr(const char *path, const char *name);
 
-int cg_is_empty(const char *controller, const char *path);
+int cg_is_empty(const char *path);
 
 int cg_get_root_path(char **path);
 
index 9a3f1a811bdf35cfdf01ab10a4e0023c7b89d232..99f1fe22aef33aeaf2b1bcf06c610da9ac5575f0 100644 (file)
@@ -288,7 +288,7 @@ static int process_cpu(Group *g, unsigned iteration) {
                 _cleanup_free_ char *val = NULL;
                 uint64_t u;
 
-                r = cg_get_keyed_attribute(SYSTEMD_CGROUP_CONTROLLER, g->path, "cpu.stat", STRV_MAKE("usage_usec"), &val);
+                r = cg_get_keyed_attribute(g->path, "cpu.stat", STRV_MAKE("usage_usec"), &val);
                 if (IN_SET(r, -ENOENT, -ENXIO))
                         return 0;
                 if (r < 0)
index 7279682b63f503132b6138fc7d8b159a470fdf7e..6f3e61ea3af072edd6e435d2cb9cd74d91f418d1 100644 (file)
@@ -2714,7 +2714,7 @@ int unit_cgroup_is_empty(Unit *u) {
         if (!crt->cgroup_path)
                 return -EOWNERDEAD;
 
-        r = cg_is_empty(SYSTEMD_CGROUP_CONTROLLER, crt->cgroup_path);
+        r = cg_is_empty(crt->cgroup_path);
         if (r < 0)
                 log_unit_debug_errno(u, r, "Failed to determine whether cgroup %s is empty: %m", empty_to_root(crt->cgroup_path));
         return r;
@@ -3033,7 +3033,6 @@ int unit_check_oom(Unit *u) {
 
         if (ctx->memory_oom_group) {
                 r = cg_get_keyed_attribute(
-                                "memory",
                                 crt->cgroup_path,
                                 "memory.events.local",
                                 STRV_MAKE("oom_group_kill"),
@@ -3044,7 +3043,6 @@ int unit_check_oom(Unit *u) {
 
         if (isempty(oom_kill)) {
                 r = cg_get_keyed_attribute(
-                                "memory",
                                 crt->cgroup_path,
                                 "memory.events",
                                 STRV_MAKE("oom_kill"),
@@ -3156,7 +3154,6 @@ static int unit_check_cgroup_events(Unit *u) {
                 return 0;
 
         r = cg_get_keyed_attribute(
-                        SYSTEMD_CGROUP_CONTROLLER,
                         crt->cgroup_path,
                         "cgroup.events",
                         STRV_MAKE("populated", "frozen"),
@@ -3601,7 +3598,7 @@ static int unit_get_cpu_usage_raw(const Unit *u, const CGroupRuntime *crt, nsec_
         _cleanup_free_ char *val = NULL;
         uint64_t us;
 
-        r = cg_get_keyed_attribute("cpu", crt->cgroup_path, "cpu.stat", STRV_MAKE("usage_usec"), &val);
+        r = cg_get_keyed_attribute(crt->cgroup_path, "cpu.stat", STRV_MAKE("usage_usec"), &val);
         if (r < 0)
                 return r;
 
@@ -4037,7 +4034,6 @@ static int unit_cgroup_freezer_kernel_state(Unit *u, FreezerState *ret) {
                 return -EOWNERDEAD;
 
         r = cg_get_keyed_attribute(
-                        SYSTEMD_CGROUP_CONTROLLER,
                         crt->cgroup_path,
                         "cgroup.events",
                         STRV_MAKE("frozen"),
index c92fb450857d9d7ddb438f4e6dd34891a4a425b9..59a81028e617135f4d1c016d71d4a1bbfad61764 100644 (file)
@@ -2015,7 +2015,7 @@ static int cgroup_good(Service *s) {
         if (!s->cgroup_runtime || !s->cgroup_runtime->cgroup_path)
                 return 0;
 
-        r = cg_is_empty(SYSTEMD_CGROUP_CONTROLLER, s->cgroup_runtime->cgroup_path);
+        r = cg_is_empty(s->cgroup_runtime->cgroup_path);
         if (r < 0)
                 return r;
 
index 1a5cbb45e1cbcfd120fced2961cbe46259e907a5..fa406cfd74fafafc588ca4c1935e86c869720ccb 100644 (file)
@@ -457,7 +457,7 @@ static int show_unit_cgroup(
 
                 /* Fallback for older systemd versions where the GetUnitProcesses() call is not yet available */
 
-                if (cg_is_empty(SYSTEMD_CGROUP_CONTROLLER, cgroup) != 0 && leader <= 0)
+                if (cg_is_empty(cgroup) != 0 && leader <= 0)
                         return 0;
 
                 show_cgroup_and_extra(cgroup, prefix, c, &leader, leader > 0, get_output_flags());
index f097bfe380108f3924f72e0268c2a45ada4b2194..0eb854f4abdb98b158ec09a1c626ab2651f80615 100644 (file)
@@ -596,7 +596,7 @@ static int machine_dispatch_cgroup_empty(sd_event_source *s, const struct inotif
 
         assert(m->cgroup);
 
-        r = cg_is_empty(SYSTEMD_CGROUP_CONTROLLER, m->cgroup);
+        r = cg_is_empty(m->cgroup);
         if (r < 0)
                 return log_error_errno(r, "Failed to determine if cgroup '%s' is empty: %m", m->cgroup);
 
@@ -782,7 +782,7 @@ bool machine_may_gc(Machine *m, bool drop_not_started) {
         }
 
         if (m->cgroup) {
-                r = cg_is_empty(SYSTEMD_CGROUP_CONTROLLER, m->cgroup);
+                r = cg_is_empty(m->cgroup);
                 if (IN_SET(r, 0, -ENOENT))
                         return true;
                 if (r < 0)
index 1318f3c6f24616a11719ff6ac29f8b1a92322e8a..cf8f7d48b9f561db6c55b427259242e9b49f87be 100644 (file)
@@ -452,7 +452,7 @@ static int show_unit_cgroup(
 
                 /* Fallback for older systemd versions where the GetUnitProcesses() call is not yet available */
 
-                if (cg_is_empty(SYSTEMD_CGROUP_CONTROLLER, cgroup) != 0 && leader <= 0)
+                if (cg_is_empty(cgroup) != 0 && leader <= 0)
                         return 0;
 
                 show_cgroup_and_extra(cgroup, "\t\t  ", c, &leader, leader > 0, get_output_flags());
index b3cf917fcd578b108fe64cc6582e7f5aa769dd5f..fcd00f8c16b30c288605cfc6d000fcddda3959ea 100644 (file)
@@ -451,7 +451,7 @@ int oomd_cgroup_context_acquire(const char *path, OomdCGroupContext **ret) {
                 else if (r < 0)
                         return log_debug_errno(r, "Error getting memory.swap.current from %s: %m", path);
 
-                r = cg_get_keyed_attribute(SYSTEMD_CGROUP_CONTROLLER, path, "memory.stat", STRV_MAKE("pgscan"), &val);
+                r = cg_get_keyed_attribute(path, "memory.stat", STRV_MAKE("pgscan"), &val);
                 if (r < 0)
                         return log_debug_errno(r, "Error getting pgscan from memory.stat under %s: %m", path);
 
index abb5c2ccd8ec6c63ed79e85319e184a92e62a21a..7e68525ba016999acbf4962261bfc14e4d355338 100644 (file)
@@ -97,7 +97,7 @@ TEST(oomd_cgroup_kill) {
                 bool empty = false;
                 for (size_t t = 0; t < 100; t++) {
                         usleep_safe(100 * USEC_PER_MSEC);
-                        ASSERT_OK(r = cg_is_empty(SYSTEMD_CGROUP_CONTROLLER, subcgroup));
+                        ASSERT_OK(r = cg_is_empty(subcgroup));
                         if (r > 0) {
                                 empty = true;
                                 break;
index ea419fd5d019ea6ad211130b2e737d0dc6b2fd77..6a591d7192adf3d69361fbe19bf2561b43ddc74b 100644 (file)
@@ -254,7 +254,7 @@ int show_cgroup_by_path(
                 if (!k)
                         return -ENOMEM;
 
-                if (!(flags & OUTPUT_SHOW_ALL) && cg_is_empty(NULL, k) > 0)
+                if (!(flags & OUTPUT_SHOW_ALL) && cg_is_empty(path_startswith(k, "/sys/fs/cgroup/")) > 0)
                         continue;
 
                 if (!shown_pids) {
index 195677bf0e017b0003da068267951c98476288db..5c162bbbf3a138ed244c5554eb6d2e20bf2c2beb 100644 (file)
@@ -59,10 +59,8 @@ TEST(cg_create) {
         ASSERT_TRUE(path_equal(path, strjoina("/sys/fs/cgroup", test_d)));
         free(path);
 
-        ASSERT_OK_POSITIVE(cg_is_empty(SYSTEMD_CGROUP_CONTROLLER, test_a));
-        ASSERT_OK_ZERO(cg_is_empty(SYSTEMD_CGROUP_CONTROLLER, test_b));
-        ASSERT_OK_POSITIVE(cg_is_empty(NULL, test_a));
-        ASSERT_OK_POSITIVE(cg_is_empty(NULL, test_b));
+        ASSERT_OK_POSITIVE(cg_is_empty(test_a));
+        ASSERT_OK_ZERO(cg_is_empty(test_b));
 
         ASSERT_OK_ZERO(cg_kill_recursive(test_a, 0, 0, NULL, NULL, NULL));
         ASSERT_OK_POSITIVE(cg_kill_recursive(test_b, 0, 0, NULL, NULL, NULL));
index 823a4d403bc927c42c2fe26db0bd6de63db94b02..bdc85adc8952aecacd235f9c1811d56623d04b62 100644 (file)
@@ -436,7 +436,7 @@ TEST(cg_get_keyed_attribute) {
         if (cg_is_available() <= 0)
                 return (void) log_tests_skipped("cgroupfs v2 is not mounted");
 
-        r = cg_get_keyed_attribute("cpu", "/init.scope", "no_such_file", STRV_MAKE("no_such_attr"), &val);
+        r = cg_get_keyed_attribute("/init.scope", "no_such_file", STRV_MAKE("no_such_attr"), &val);
         if (ERRNO_IS_PRIVILEGE(r))
                 return (void) log_tests_skipped_errno(r, "/sys/fs/cgroup not accessible");
 
@@ -446,20 +446,20 @@ TEST(cg_get_keyed_attribute) {
         if (access("/sys/fs/cgroup/init.scope/cpu.stat", R_OK) < 0)
                 return (void) log_tests_skipped_errno(errno, "/init.scope/cpu.stat not accessible");
 
-        assert_se(cg_get_keyed_attribute("cpu", "/init.scope", "cpu.stat", STRV_MAKE("no_such_attr"), &val) == -ENXIO);
+        assert_se(cg_get_keyed_attribute("/init.scope", "cpu.stat", STRV_MAKE("no_such_attr"), &val) == -ENXIO);
         ASSERT_NULL(val);
 
-        assert_se(cg_get_keyed_attribute("cpu", "/init.scope", "cpu.stat", STRV_MAKE("usage_usec"), &val) == 0);
+        assert_se(cg_get_keyed_attribute("/init.scope", "cpu.stat", STRV_MAKE("usage_usec"), &val) == 0);
         val = mfree(val);
 
-        assert_se(cg_get_keyed_attribute("cpu", "/init.scope", "cpu.stat", STRV_MAKE("usage_usec", "no_such_attr"), vals3) == -ENXIO);
+        assert_se(cg_get_keyed_attribute("/init.scope", "cpu.stat", STRV_MAKE("usage_usec", "no_such_attr"), vals3) == -ENXIO);
 
-        assert_se(cg_get_keyed_attribute("cpu", "/init.scope", "cpu.stat",
+        assert_se(cg_get_keyed_attribute("/init.scope", "cpu.stat",
                                          STRV_MAKE("usage_usec", "user_usec", "system_usec"), vals3) == 0);
         for (size_t i = 0; i < 3; i++)
                 free(vals3[i]);
 
-        assert_se(cg_get_keyed_attribute("cpu", "/init.scope", "cpu.stat",
+        assert_se(cg_get_keyed_attribute("/init.scope", "cpu.stat",
                                          STRV_MAKE("system_usec", "user_usec", "usage_usec"), vals3a) == 0);
         for (size_t i = 0; i < 3; i++)
                 free(vals3a[i]);