linux/include
Paul Menage 8bab8dded6 cgroups: add cgroup support for enabling controllers at boot time
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: Balbir 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: Li Zefan <lizf@cn.fujitsu.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-04-04 14:46:26 -07:00
..
acpi ACPI, cpuidle: Clarify C-state description in sysfs 2008-02-14 00:09:55 -05:00
asm-alpha alpha: get_current(): don't add zero to current_thread_info()->task 2008-04-02 15:28:20 -07:00
asm-arm kvm: provide kvm.h for all architecture: fixes headers_install 2008-04-02 15:28:18 -07:00
asm-avr32 kvm: provide kvm.h for all architecture: fixes headers_install 2008-04-02 15:28:18 -07:00
asm-blackfin kvm: provide kvm.h for all architecture: fixes headers_install 2008-04-02 15:28:18 -07:00
asm-cris kvm: provide kvm.h for all architecture: fixes headers_install 2008-04-02 15:28:18 -07:00
asm-frv kvm: provide kvm.h for all architecture: fixes headers_install 2008-04-02 15:28:18 -07:00
asm-generic kvm: provide kvm.h for all architecture: fixes headers_install 2008-04-02 15:28:18 -07:00
asm-h8300 kvm: provide kvm.h for all architecture: fixes headers_install 2008-04-02 15:28:18 -07:00
asm-ia64 kvm: provide kvm.h for all architecture: fixes headers_install 2008-04-02 15:28:18 -07:00
asm-m32r kvm: provide kvm.h for all architecture: fixes headers_install 2008-04-02 15:28:18 -07:00
asm-m68k kvm: provide kvm.h for all architecture: fixes headers_install 2008-04-02 15:28:18 -07:00
asm-m68knommu kvm: provide kvm.h for all architecture: fixes headers_install 2008-04-02 15:28:18 -07:00
asm-mips kvm: provide kvm.h for all architecture: fixes headers_install 2008-04-02 15:28:18 -07:00
asm-mn10300 kvm: provide kvm.h for all architecture: fixes headers_install 2008-04-02 15:28:18 -07:00
asm-parisc kvm: provide kvm.h for all architecture: fixes headers_install 2008-04-02 15:28:18 -07:00
asm-powerpc kvm: provide kvm.h for all architecture: fixes headers_install 2008-04-02 15:28:18 -07:00
asm-ppc [PPC] 8xx: swap bug-fix 2008-03-07 16:56:54 -06:00
asm-s390 kvm: provide kvm.h for all architecture: fixes headers_install 2008-04-02 15:28:18 -07:00
asm-sh kvm: provide kvm.h for all architecture: fixes headers_install 2008-04-02 15:28:18 -07:00
asm-sparc kvm: provide kvm.h for all architecture: fixes headers_install 2008-04-02 15:28:18 -07:00
asm-sparc64 kvm: provide kvm.h for all architecture: fixes headers_install 2008-04-02 15:28:18 -07:00
asm-um kvm: provide kvm.h for all architecture: fixes headers_install 2008-04-02 15:28:18 -07:00
asm-v850 kvm: provide kvm.h for all architecture: fixes headers_install 2008-04-02 15:28:18 -07:00
asm-x86 x86: fix breakage of vSMP irq operations 2008-04-04 18:36:46 +02:00
asm-xtensa kvm: provide kvm.h for all architecture: fixes headers_install 2008-04-02 15:28:18 -07:00
crypto [CRYPTO] skcipher: Fix section mismatches 2008-03-08 20:29:43 +08:00
keys
linux cgroups: add cgroup support for enabling controllers at boot time 2008-04-04 14:46:26 -07:00
math-emu
media V4L/DVB (7192): Adds support for Genius TVGo A11MCE 2008-02-18 11:15:19 -03:00
mtd Merge git://git.infradead.org/~dedekind/ubi-2.6 2008-02-03 22:07:40 +11:00
net [LLC]: skb allocation size for responses 2008-03-31 21:02:47 -07:00
pcmcia pcmcia: replace kio_addr_t with unsigned int everywhere 2008-02-05 09:44:08 -08:00
rdma IB/core: Remove unused struct ib_device.flags member 2008-02-08 14:47:26 -08:00
rxrpc
scsi [SCSI] iscsi class: regression - fix races with state manipulation and blocking/unblocking 2008-03-05 12:04:09 -06:00
sound [ALSA] opl3 - Fix compilation without sequencer support 2008-02-22 14:20:08 -08:00
video atmel_lcdfb: backlight control 2008-02-06 10:41:16 -08:00
xen x86: page.h: make pte_t a union to always include 2008-01-30 13:32:57 +01:00
Kbuild