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/core.c | |
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/core.c')
-rw-r--r-- | kernel/sched/core.c | 6 |
1 files changed, 2 insertions, 4 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 | }; |