From: Balbir Singh Date: Thu, 01 May 2008 02:48:58 -0700 Subject: memcg: disable the memory controller by default Patch-mainline: not yet Due to the overhead of the memory controller the memory controller is now disabled by default. This patch adds cgroup_enable. [akpm@linux-foundation.org: `inline __init' doesn't make sense] Signed-off-by: Balbir Singh Cc: AMAMOTO Takashi Acked-by: Paul Menage Cc: Pavel Emelianov Acked-by: KAMEZAWA Hiroyuki Cc: Signed-off-by: Andrew Morton Signed-off-by: Jiri Slaby --- Documentation/kernel-parameters.txt | 3 +++ kernel/cgroup.c | 17 +++++++++++++---- mm/memcontrol.c | 1 + 3 files changed, 17 insertions(+), 4 deletions(-) --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt @@ -449,8 +449,11 @@ and is between 256 and 4096 characters. See Documentation/s390/CommonIO for details. cgroup_disable= [KNL] Disable a particular controller + cgroup_enable= [KNL] Enable a particular controller + For both cgroup_enable and cgroup_enable Format: {name of the controller(s) to disable} {Currently supported controllers - "memory"} + {Memory controller is disabled by default} checkreqprot [SELINUX] Set initial checkreqprot flag value. Format: { "0" | "1" } --- a/kernel/cgroup.c +++ b/kernel/cgroup.c @@ -4394,7 +4394,7 @@ static void cgroup_release_agent(struct mutex_unlock(&cgroup_mutex); } -static int __init cgroup_disable(char *str) +static int __init cgroup_turnonoff(char *str, int disable) { int i; char *token; @@ -4410,17 +4410,26 @@ static int __init cgroup_disable(char *s struct cgroup_subsys *ss = subsys[i]; if (!strcmp(token, ss->name)) { - ss->disabled = 1; - printk(KERN_INFO "Disabling %s control group" - " subsystem\n", ss->name); + ss->disabled = disable; break; } } } return 1; } + +static int __init cgroup_disable(char *str) +{ + return cgroup_turnonoff(str, 1); +} __setup("cgroup_disable=", cgroup_disable); +static int __init cgroup_enable(char *str) +{ + return cgroup_turnonoff(str, 0); +} +__setup("cgroup_enable=", cgroup_enable); + /* * Functons for CSS ID. */ --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -4343,6 +4343,7 @@ struct cgroup_subsys mem_cgroup_subsys = .attach = mem_cgroup_move_task, .early_init = 0, .use_id = 1, + .disabled = 1, }; #ifdef CONFIG_CGROUP_MEM_RES_CTLR_SWAP