• Tejun Heo's avatar
    cgroup: clean up cgroup_subsys names and initialization · 073219e9
    Tejun Heo authored
    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
    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 fe1217c4
     ("net: net_cls: move cgroupfs
        classid handling into core").
    Signed-off-by: default avatarTejun Heo <tj@kernel.org>
    Acked-by: default avatarNeil Horman <nhorman@tuxdriver.com>
    Acked-by: default avatar"David S. Miller" <davem@davemloft.net>
    Acked-by: default avatar"Rafael J. Wysocki" <rjw@rjwysocki.net>
    Acked-by: default avatarMichal Hocko <mhocko@suse.cz>
    Acked-by: default avatarPeter Zijlstra <peterz@infradead.org>
    Acked-by: default avatarAristeu Rozanski <aris@redhat.com>
    Acked-by: default avatarIngo Molnar <mingo@redhat.com>
    Acked-by: default avatarLi 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>