cgroup_pids: don't account for the root cgroup
Tejun Heo
maintainerPATCH 1/1 cgroup_pids: don't account for the root cgroup
From 7bbb8d4e913853a1346d95745ca8092f0cc8ce00 Mon Sep 17 00:00:00 2001
From: Tejun Heo <[email protected]>
Date: Mon, 30 Nov 2015 17:24:34 -0500
Because accounting resources for the root cgroup sometimes incurs measureable overhead for workloads which don't care about cgroup and often ends up calculating a number which is available elsewhere in a slightly different form, cgroup is not in the business of providing system-wide statistics. The pids controller which was introduced recently was exposing "pids.current" at the root. This patch disable accounting for root cgroup and removes the file from the root directory.
While this is a userland visible behavior change, pids has been available only in one version and was badly broken there, so I don't think this will be noticeable. If it turns out to be a problem, we can reinstate it for v1 hierarchies.
--- kernel/cgroup_pids.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-)
kernel/cgroup_pids.c +4 -3
@@ -106,7 +106,7 @@ static void pids_uncharge(struct pids_cgroup *pids, int num) {struct pids_cgroup *p; -for (p = pids; p; p =parent_pids (p)) +for (p = pids;parent_pids (p); p =parent_pids (p))pids_cancel (p, num); }
@@ -123,7 +123,7 @@ static void pids_charge(struct pids_cgroup *pids, int num) {struct pids_cgroup *p; -for (p = pids; p; p =parent_pids (p)) +for (p = pids;parent_pids (p); p =parent_pids (p))atomic64_add (num, &p->counter); }
@@ -140,7 +140,7 @@ static int pids_try_charge(struct pids_cgroup *pids, int num) {struct pids_cgroup *p, *q; -for (p = pids; p; p =parent_pids (p)) { +for (p = pids;parent_pids (p); p =parent_pids (p)) {int64_t new =atomic64_add_return (num, &p->counter);/*
@@ -298,6 +298,7 @@ static struct cftype pids_files[] = { { .name = "current", .read_s64 = pids_current_read, + .flags = CFTYPE_NOT_ON_ROOT, }, { }/* terminate */ };
Signature · 1 line
2.5.0
Tejun Heo
maintainerQuoted 13 lines · Tejun Heo
From
7bbb8d4e913853a1346d95745ca8092f0cc8ce00Mon Sep 17 00:00:00 2001
From: Tejun Heo <[email protected]>
Date: Mon, 30 Nov 2015 17:24:34 -0500Because accounting resources for the root cgroup sometimes incurs measureable overhead for workloads which don't care about cgroup and often ends up calculating a number which is available elsewhere in a slightly different form, cgroup is not in the business of providing system-wide statistics. The pids controller which was introduced recently was exposing "pids.current" at the root. This patch disable accounting for root cgroup and removes the file from the root directory.
Quoted 7 lines
While this is a userland visible behavior change, pids has been available only in one version and was badly broken there, so I don't think this will be noticeable. If it turns out to be a problem, we can reinstate it for v1 hierarchies.
Signed-off-by Tejun Heo <[email protected]>Cc Aleksa Sarai <cyphar-gVpy/LI/[email protected]>
Applying to cgroup/for-4.4-fixes.
Thanks.
Signature · 1 line
tejun