diff options
author | Tejun Heo <tj@kernel.org> | 2014-02-08 10:36:58 -0500 |
---|---|---|
committer | Tejun Heo <tj@kernel.org> | 2014-02-08 10:36:58 -0500 |
commit | 073219e995b4a3f8cf1ce8228b7ef440b6994ac0 (patch) | |
tree | d140fc2e94bd8fd09270286b7267fb087a79f288 /kernel/sched | |
parent | 3ed80a62bf959d34ebd4d553b026fbe7e6fbcc54 (diff) |
cgroup: clean up cgroup_subsys names and initialization
cgroup_subsys is a bit messier than it needs to be.
* The name of a subsys can be different from its internal identifier
defined in cgroup_subsys.h. Most subsystems use the matching name
but three - cpu, memory and perf_event - use different ones.
* cgroup_subsys_id enums are postfixed with _subsys_id and each
cgroup_subsys is postfixed with _subsys. cgroup.h is widely
included throughout various subsystems, it doesn't and shouldn't
have claim on such generic names which don't have any qualifier
indicating that they belong to cgroup.
* cgroup_subsys->subsys_id should always equal the matching
cgroup_subsys_id enum; however, we require each controller to
initialize it and then BUG if they don't match, which is a bit
silly.
This patch cleans up cgroup_subsys names and initialization by doing
the followings.
* cgroup_subsys_id enums are now postfixed with _cgrp_id, and each
cgroup_subsys with _cgrp_subsys.
* With the above, renaming subsys identifiers to match the userland
visible names doesn't cause any naming conflicts. All non-matching
identifiers are renamed to match the official names.
cpu_cgroup -> cpu
mem_cgroup -> memory
perf -> perf_event
* controllers no longer need to initialize ->subsys_id and ->name.
They're generated in cgroup core and set automatically during boot.
* Redundant cgroup_subsys declarations removed.
* While updating BUG_ON()s in cgroup_init_early(), convert them to
WARN()s. BUGging that early during boot is stupid - the kernel
can't print anything, even through serial console and the trap
handler doesn't even link stack frame properly for back-tracing.
This patch doesn't introduce any behavior changes.
v2: Rebased on top of fe1217c4f3f7 ("net: net_cls: move cgroupfs
classid handling into core").
Signed-off-by: Tejun Heo <tj@kernel.org>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
Acked-by: "David S. Miller" <davem@davemloft.net>
Acked-by: "Rafael J. Wysocki" <rjw@rjwysocki.net>
Acked-by: Michal Hocko <mhocko@suse.cz>
Acked-by: Peter Zijlstra <peterz@infradead.org>
Acked-by: Aristeu Rozanski <aris@redhat.com>
Acked-by: Ingo Molnar <mingo@redhat.com>
Acked-by: Li Zefan <lizefan@huawei.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Balbir Singh <bsingharora@gmail.com>
Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: Serge E. Hallyn <serue@us.ibm.com>
Cc: Vivek Goyal <vgoyal@redhat.com>
Cc: Thomas Graf <tgraf@suug.ch>
Diffstat (limited to 'kernel/sched')
-rw-r--r-- | kernel/sched/core.c | 6 | ||||
-rw-r--r-- | kernel/sched/cpuacct.c | 6 |
2 files changed, 4 insertions, 8 deletions
diff --git a/kernel/sched/core.c b/kernel/sched/core.c index b46131ef6aab..d4cfc5561830 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c | |||
@@ -7176,7 +7176,7 @@ void sched_move_task(struct task_struct *tsk) | |||
7176 | if (unlikely(running)) | 7176 | if (unlikely(running)) |
7177 | tsk->sched_class->put_prev_task(rq, tsk); | 7177 | tsk->sched_class->put_prev_task(rq, tsk); |
7178 | 7178 | ||
7179 | tg = container_of(task_css_check(tsk, cpu_cgroup_subsys_id, | 7179 | tg = container_of(task_css_check(tsk, cpu_cgrp_id, |
7180 | lockdep_is_held(&tsk->sighand->siglock)), | 7180 | lockdep_is_held(&tsk->sighand->siglock)), |
7181 | struct task_group, css); | 7181 | struct task_group, css); |
7182 | tg = autogroup_task_group(tsk, tg); | 7182 | tg = autogroup_task_group(tsk, tg); |
@@ -7957,8 +7957,7 @@ static struct cftype cpu_files[] = { | |||
7957 | { } /* terminate */ | 7957 | { } /* terminate */ |
7958 | }; | 7958 | }; |
7959 | 7959 | ||
7960 | struct cgroup_subsys cpu_cgroup_subsys = { | 7960 | struct cgroup_subsys cpu_cgrp_subsys = { |
7961 | .name = "cpu", | ||
7962 | .css_alloc = cpu_cgroup_css_alloc, | 7961 | .css_alloc = cpu_cgroup_css_alloc, |
7963 | .css_free = cpu_cgroup_css_free, | 7962 | .css_free = cpu_cgroup_css_free, |
7964 | .css_online = cpu_cgroup_css_online, | 7963 | .css_online = cpu_cgroup_css_online, |
@@ -7966,7 +7965,6 @@ struct cgroup_subsys cpu_cgroup_subsys = { | |||
7966 | .can_attach = cpu_cgroup_can_attach, | 7965 | .can_attach = cpu_cgroup_can_attach, |
7967 | .attach = cpu_cgroup_attach, | 7966 | .attach = cpu_cgroup_attach, |
7968 | .exit = cpu_cgroup_exit, | 7967 | .exit = cpu_cgroup_exit, |
7969 | .subsys_id = cpu_cgroup_subsys_id, | ||
7970 | .base_cftypes = cpu_files, | 7968 | .base_cftypes = cpu_files, |
7971 | .early_init = 1, | 7969 | .early_init = 1, |
7972 | }; | 7970 | }; |
diff --git a/kernel/sched/cpuacct.c b/kernel/sched/cpuacct.c index 622e0818f905..c143ee380e3a 100644 --- a/kernel/sched/cpuacct.c +++ b/kernel/sched/cpuacct.c | |||
@@ -41,7 +41,7 @@ static inline struct cpuacct *css_ca(struct cgroup_subsys_state *css) | |||
41 | /* return cpu accounting group to which this task belongs */ | 41 | /* return cpu accounting group to which this task belongs */ |
42 | static inline struct cpuacct *task_ca(struct task_struct *tsk) | 42 | static inline struct cpuacct *task_ca(struct task_struct *tsk) |
43 | { | 43 | { |
44 | return css_ca(task_css(tsk, cpuacct_subsys_id)); | 44 | return css_ca(task_css(tsk, cpuacct_cgrp_id)); |
45 | } | 45 | } |
46 | 46 | ||
47 | static inline struct cpuacct *parent_ca(struct cpuacct *ca) | 47 | static inline struct cpuacct *parent_ca(struct cpuacct *ca) |
@@ -275,11 +275,9 @@ void cpuacct_account_field(struct task_struct *p, int index, u64 val) | |||
275 | rcu_read_unlock(); | 275 | rcu_read_unlock(); |
276 | } | 276 | } |
277 | 277 | ||
278 | struct cgroup_subsys cpuacct_subsys = { | 278 | struct cgroup_subsys cpuacct_cgrp_subsys = { |
279 | .name = "cpuacct", | ||
280 | .css_alloc = cpuacct_css_alloc, | 279 | .css_alloc = cpuacct_css_alloc, |
281 | .css_free = cpuacct_css_free, | 280 | .css_free = cpuacct_css_free, |
282 | .subsys_id = cpuacct_subsys_id, | ||
283 | .base_cftypes = files, | 281 | .base_cftypes = files, |
284 | .early_init = 1, | 282 | .early_init = 1, |
285 | }; | 283 | }; |