mirror of
https://github.com/systemd/systemd.git
synced 2025-03-31 14:50:15 +03:00
core: hook up /proc queries for the root slice, too
Do what we already prepped in cgtop for the root slice in PID 1 too: consult /proc for the data we need.
This commit is contained in:
parent
b734a4ff14
commit
1f73aa0021
@ -2296,6 +2296,10 @@ int unit_get_memory_current(Unit *u, uint64_t *ret) {
|
||||
if (!u->cgroup_path)
|
||||
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_memory_get_current(ret);
|
||||
|
||||
if ((u->cgroup_realized_mask & CGROUP_MASK_MEMORY) == 0)
|
||||
return -ENODATA;
|
||||
|
||||
@ -2327,13 +2331,13 @@ int unit_get_tasks_current(Unit *u, uint64_t *ret) {
|
||||
if (!u->cgroup_path)
|
||||
return -ENODATA;
|
||||
|
||||
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);
|
||||
|
||||
if ((u->cgroup_realized_mask & CGROUP_MASK_PIDS) == 0)
|
||||
return -ENODATA;
|
||||
|
||||
r = cg_get_attribute("pids", u->cgroup_path, "pids.current", &v);
|
||||
if (r == -ENOENT)
|
||||
return -ENODATA;
|
||||
@ -2354,6 +2358,10 @@ static int unit_get_cpu_usage_raw(Unit *u, nsec_t *ret) {
|
||||
if (!u->cgroup_path)
|
||||
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_cpu_get_usage(ret);
|
||||
|
||||
r = cg_all_unified();
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
Loading…
x
Reference in New Issue
Block a user