Re: [PATCH 3/6] cgroup: clean up cgroup_subsys names and initialization

Neil Horman
2014-01-17T20:50:24Z

On Fri, Jan 17, 2014 at 01:11:54PM -0500, Tejun Heo wrote:
> 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.
>
> Signed-off-by: Tejun Heo <tj@kernel.org>
> Cc: Ingo Molnar <mingo@redhat.com>
> Cc: Peter Zijlstra <peterz@infradead.org>
> Cc: Li Zefan <lizefan@huawei.com>
> Cc: Johannes Weiner <hannes@cmpxchg.org>
> Cc: Michal Hocko <mhocko@suse.cz>
> Cc: Balbir Singh <bsingharora@gmail.com>
> Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
> Cc: Aristeu Rozanski <aris@redhat.com>
> Cc: Serge E. Hallyn <serue@us.ibm.com>
> Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net>
> Cc: Vivek Goyal <vgoyal@redhat.com>
> Cc: Neil Horman <nhorman@tuxdriver.com>
> Cc: Thomas Graf <tgraf@suug.ch>
> Cc: "David S. Miller" <davem@davemloft.net>
For the netprio and net_cls bits
Acked-by: Neil Horman <nhorman@tuxdriver.com>