From: Lennart Poettering Date: Wed, 17 Jan 2018 14:39:39 +0000 (+0100) Subject: cgroup: when querying the number of tasks in the root slice use the pid_max sysctl X-Git-Tag: v237~30^2~4 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c36a69f4cd8f835260e73941b14dff58e6f53e60;p=platform%2Fupstream%2Fsystemd.git cgroup: when querying the number of tasks in the root slice use the pid_max sysctl The root cgroup doesn't expose and properties in the "pids" cgroup controller, hence we need to get the data from somewhere else. --- diff --git a/src/core/cgroup.c b/src/core/cgroup.c index a4974d2..c779859 100644 --- a/src/core/cgroup.c +++ b/src/core/cgroup.c @@ -32,6 +32,7 @@ #include "parse-util.h" #include "path-util.h" #include "process-util.h" +#include "procfs-util.h" #include "special.h" #include "stdio-util.h" #include "string-table.h" @@ -2271,6 +2272,10 @@ int unit_get_tasks_current(Unit *u, uint64_t *ret) { if ((u->cgroup_realized_mask & CGROUP_MASK_PIDS) == 0) return -ENODATA; + /* The root cgroup doesn't expose this information, let's get it from /proc instead */ + if (unit_has_root_cgroup(u)) + return procfs_tasks_get_current(ret); + r = cg_get_attribute("pids", u->cgroup_path, "pids.current", &v); if (r == -ENOENT) return -ENODATA;