Disable cgroups memory controller, unless explicitly enabled
This should result in very low run-time overhead, though this is yet to be measured. svn path=/dists/trunk/linux-2.6/; revision=17394
This commit is contained in:
parent
c3d0a74764
commit
c61208e7d6
|
@ -3404,6 +3404,7 @@ CONFIG_PROC_PID_CPUSET=y
|
|||
CONFIG_CGROUP_CPUACCT=y
|
||||
CONFIG_RESOURCE_COUNTERS=y
|
||||
CONFIG_CGROUP_MEM_RES_CTLR=y
|
||||
CONFIG_CGROUP_MEM_RES_CTLR_DISABLED=y
|
||||
CONFIG_CGROUP_SCHED=y
|
||||
CONFIG_FAIR_GROUP_SCHED=y
|
||||
# CONFIG_RT_GROUP_SCHED is not set
|
||||
|
|
28
debian/patches/debian/cgroups-Document-the-Debian-memory-resource-controll.patch
vendored
Normal file
28
debian/patches/debian/cgroups-Document-the-Debian-memory-resource-controll.patch
vendored
Normal file
|
@ -0,0 +1,28 @@
|
|||
From 969e4dd0b5c715b239c765b870f2abf81c57e878 Mon Sep 17 00:00:00 2001
|
||||
From: Ben Hutchings <ben@decadent.org.uk>
|
||||
Date: Sun, 30 May 2010 22:47:01 +0100
|
||||
Subject: [PATCH 2/2] cgroups: Document the Debian memory resource controller
|
||||
config change
|
||||
|
||||
---
|
||||
Documentation/cgroups/memory.txt | 4 ++++
|
||||
1 files changed, 4 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/Documentation/cgroups/memory.txt b/Documentation/cgroups/memory.txt
|
||||
index 7c16347..684f70d 100644
|
||||
--- a/Documentation/cgroups/memory.txt
|
||||
+++ b/Documentation/cgroups/memory.txt
|
||||
@@ -47,6 +47,10 @@ Features:
|
||||
Kernel memory and Hugepages are not under control yet. We just manage
|
||||
pages on LRU. To add more controls, we have to take care of performance.
|
||||
|
||||
+NOTE: In Debian kernel packages, the memory resource controller is
|
||||
+included but disabled by default. Use the kernel parameter
|
||||
+'cgroup_enable=memory' to enable it.
|
||||
+
|
||||
Brief summary of control files.
|
||||
|
||||
tasks # attach a task(thread) and show list of threads
|
||||
--
|
||||
1.7.4.4
|
||||
|
115
debian/patches/features/all/cgroups-Allow-memory-cgroup-support-to-be-included-b.patch
vendored
Normal file
115
debian/patches/features/all/cgroups-Allow-memory-cgroup-support-to-be-included-b.patch
vendored
Normal file
|
@ -0,0 +1,115 @@
|
|||
From: Ben Hutchings <ben@decadent.org.uk>
|
||||
Date: Sun, 30 May 2010 22:43:38 +0100
|
||||
Subject: [PATCH 1/2] cgroups: Allow memory cgroup support to be included but
|
||||
disabled
|
||||
|
||||
Memory cgroup support has some run-time overhead, so it's useful to
|
||||
include it in a distribution kernel without enabling it by default.
|
||||
Add a kernel config option to disable it by default and a kernel
|
||||
parameter 'cgroup_enable' as the opposite to 'cgroup_disable'.
|
||||
|
||||
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
|
||||
---
|
||||
Documentation/kernel-parameters.txt | 4 ++--
|
||||
init/Kconfig | 8 ++++++++
|
||||
kernel/cgroup.c | 20 ++++++++++++++++----
|
||||
mm/memcontrol.c | 3 +++
|
||||
4 files changed, 29 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
|
||||
index cc85a92..38e0b44 100644
|
||||
--- a/Documentation/kernel-parameters.txt
|
||||
+++ b/Documentation/kernel-parameters.txt
|
||||
@@ -425,8 +425,8 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
|
||||
ccw_timeout_log [S390]
|
||||
See Documentation/s390/CommonIO for details.
|
||||
|
||||
- cgroup_disable= [KNL] Disable a particular controller
|
||||
- Format: {name of the controller(s) to disable}
|
||||
+ cgroup_disable= [KNL] Disable/enable a particular controller
|
||||
+ cgroup_enable= Format: {name of the controller(s) to disable/enable}
|
||||
{Currently supported controllers - "memory"}
|
||||
|
||||
checkreqprot [SELINUX] Set initial checkreqprot flag value.
|
||||
diff --git a/init/Kconfig b/init/Kconfig
|
||||
index d886b1e..3410369 100644
|
||||
--- a/init/Kconfig
|
||||
+++ b/init/Kconfig
|
||||
@@ -659,6 +659,14 @@ config CGROUP_MEM_RES_CTLR
|
||||
This config option also selects MM_OWNER config option, which
|
||||
could in turn add some fork/exit overhead.
|
||||
|
||||
+config CGROUP_MEM_RES_CTLR_DISABLED
|
||||
+ bool "Memory Resource Controller disabled by default"
|
||||
+ depends on CGROUP_MEM_RES_CTLR
|
||||
+ default n
|
||||
+ help
|
||||
+ Disable the memory group resource controller unless explicitly
|
||||
+ enabled using the kernel parameter "cgroup_enable=memory".
|
||||
+
|
||||
config CGROUP_MEM_RES_CTLR_SWAP
|
||||
bool "Memory Resource Controller Swap Extension"
|
||||
depends on CGROUP_MEM_RES_CTLR && SWAP
|
||||
diff --git a/kernel/cgroup.c b/kernel/cgroup.c
|
||||
index 25c7eb5..b3c5aa7 100644
|
||||
--- a/kernel/cgroup.c
|
||||
+++ b/kernel/cgroup.c
|
||||
@@ -4526,7 +4526,7 @@ static void cgroup_release_agent(struct work_struct *work)
|
||||
mutex_unlock(&cgroup_mutex);
|
||||
}
|
||||
|
||||
-static int __init cgroup_disable(char *str)
|
||||
+static int __init cgroup_set_disabled(char *str, int value)
|
||||
{
|
||||
int i;
|
||||
char *token;
|
||||
@@ -4542,17 +4542,29 @@ static int __init cgroup_disable(char *str)
|
||||
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 = value;
|
||||
+ printk(KERN_INFO
|
||||
+ "%sabling %s control group subsystem\n",
|
||||
+ value ? "Dis" : "En", ss->name);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
+
|
||||
+static int __init cgroup_disable(char *str)
|
||||
+{
|
||||
+ return cgroup_set_disabled(str, 1);
|
||||
+}
|
||||
__setup("cgroup_disable=", cgroup_disable);
|
||||
|
||||
+static int __init cgroup_enable(char *str)
|
||||
+{
|
||||
+ return cgroup_set_disabled(str, 0);
|
||||
+}
|
||||
+__setup("cgroup_enable=", cgroup_enable);
|
||||
+
|
||||
/*
|
||||
* Functons for CSS ID.
|
||||
*/
|
||||
diff --git a/mm/memcontrol.c b/mm/memcontrol.c
|
||||
index 010f916..f660a07 100644
|
||||
--- a/mm/memcontrol.c
|
||||
+++ b/mm/memcontrol.c
|
||||
@@ -5153,6 +5153,9 @@ static void mem_cgroup_move_task(struct cgroup_subsys *ss,
|
||||
|
||||
struct cgroup_subsys mem_cgroup_subsys = {
|
||||
.name = "memory",
|
||||
+#ifdef CONFIG_CGROUP_MEM_RES_CTLR_DISABLED
|
||||
+ .disabled = 1,
|
||||
+#endif
|
||||
.subsys_id = mem_cgroup_subsys_id,
|
||||
.create = mem_cgroup_create,
|
||||
.pre_destroy = mem_cgroup_pre_destroy,
|
||||
--
|
||||
1.7.4.4
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
+ features/all/cgroups-Allow-memory-cgroup-support-to-be-included-b.patch
|
||||
+ debian/cgroups-Document-the-Debian-memory-resource-controll.patch
|
Loading…
Reference in New Issue