• Paul Menage's avatar
    cgroups: add cgroup support for enabling controllers at boot time · 8bab8dde
    Paul Menage authored
    The effects of cgroup_disable=foo are:
    
    - foo isn't auto-mounted if you mount all cgroups in a single hierarchy
    - foo isn't visible as an individually mountable subsystem
    
    As a result there will only ever be one call to foo->create(), at init time;
    all processes will stay in this group, and the group will never be mounted on
    a visible hierarchy.  Any additional effects (e.g.  not allocating metadata)
    are up to the foo subsystem.
    
    This doesn't handle early_init subsystems (their "disabled" bit isn't set be,
    but it could easily be extended to do so if any of the early_init systems
    wanted it - I think it would just involve some nastier parameter processing
    since it would occur before the command-line argument parser had been run.
    
    Hugh said:
    
      Ballpark figures, I'm trying to get this question out rather than
      processing the exact numbers: CONFIG_CGROUP_MEM_RES_CTLR adds 15% overhead
      to the affected paths, booting with cgroup_disable=memory cuts that back to
      1% overhead (due to slightly bigger struct page).
    
      I'm no expert on distros, they may have no interest whatever in
      CONFIG_CGROUP_MEM_RES_CTLR=y; and the rest of us can easily build with or
      without it, or apply the cgroup_disable=memory patches.
    
    Unix bench's execl test result on x86_64 was
    
    == just after boot without mounting any cgroup fs.==
    mem_cgorup=off : Execl Throughput       43.0     3150.1      732.6
    mem_cgroup=on  : Execl Throughput       43.0     2932.6      682.0
    ==
    
    [lizf@cn.fujitsu.com: fix boot option parsing]
    Signed-off-by: default avatarBalbir Singh <balbir@linux.vnet.ibm.com>
    Cc: Paul Menage <menage@google.com>
    Cc: Balbir Singh <balbir@linux.vnet.ibm.com>
    Cc: Pavel Emelyanov <xemul@openvz.org>
    Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
    Cc: Hugh Dickins <hugh@veritas.com>
    Cc: Sudhir Kumar <skumar@linux.vnet.ibm.com>
    Cc: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
    Cc: David Rientjes <rientjes@google.com>
    Signed-off-by: default avatarLi Zefan <lizf@cn.fujitsu.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    8bab8dde
cgroup.c 79 KB