Skip to content
  • 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 <>
    Acked-by: default avatarNeil Horman <>
    Acked-by: default avatar"David S. Miller" <>
    Acked-by: default avatar"Rafael J. Wysocki" <>
    Acked-by: default avatarMichal Hocko <>
    Acked-by: default avatarPeter Zijlstra <>
    Acked-by: default avatarAristeu Rozanski <>
    Acked-by: default avatarIngo Molnar <>
    Acked-by: default avatarLi Zefan <>
    Cc: Johannes Weiner <>
    Cc: Balbir Singh <>
    Cc: KAMEZAWA Hiroyuki <>
    Cc: Serge E. Hallyn <>
    Cc: Vivek Goyal <>
    Cc: Thomas Graf <>