aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/brcm2708/patches-3.14/0027-config-Enable-CONFIG_MEMCG-but-leave-it-disabled-due.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/brcm2708/patches-3.14/0027-config-Enable-CONFIG_MEMCG-but-leave-it-disabled-due.patch')
-rw-r--r--target/linux/brcm2708/patches-3.14/0027-config-Enable-CONFIG_MEMCG-but-leave-it-disabled-due.patch77
1 files changed, 77 insertions, 0 deletions
diff --git a/target/linux/brcm2708/patches-3.14/0027-config-Enable-CONFIG_MEMCG-but-leave-it-disabled-due.patch b/target/linux/brcm2708/patches-3.14/0027-config-Enable-CONFIG_MEMCG-but-leave-it-disabled-due.patch
new file mode 100644
index 0000000000..dec8cdf0cd
--- /dev/null
+++ b/target/linux/brcm2708/patches-3.14/0027-config-Enable-CONFIG_MEMCG-but-leave-it-disabled-due.patch
@@ -0,0 +1,77 @@
+From 6f2dc468edc31cf2c9b2098566cbbcc1e59b5ad5 Mon Sep 17 00:00:00 2001
+From: popcornmix <popcornmix@gmail.com>
+Date: Wed, 18 Dec 2013 22:16:19 +0000
+Subject: [PATCH 27/54] config: Enable CONFIG_MEMCG, but leave it disabled (due
+ to memory cost). Enable with cgroup_enable=memory.
+
+---
+ arch/arm/configs/bcmrpi_defconfig | 1 +
+ kernel/cgroup.c | 27 +++++++++++++++++++++++++++
+ mm/memcontrol.c | 1 +
+ 3 files changed, 29 insertions(+)
+
+diff --git a/arch/arm/configs/bcmrpi_defconfig b/arch/arm/configs/bcmrpi_defconfig
+index 78d789c..e89e430 100644
+--- a/arch/arm/configs/bcmrpi_defconfig
++++ b/arch/arm/configs/bcmrpi_defconfig
+@@ -18,6 +18,7 @@ CONFIG_CGROUP_FREEZER=y
+ CONFIG_CGROUP_DEVICE=y
+ CONFIG_CGROUP_CPUACCT=y
+ CONFIG_RESOURCE_COUNTERS=y
++CONFIG_MEMCG=y
+ CONFIG_BLK_CGROUP=y
+ CONFIG_NAMESPACES=y
+ CONFIG_SCHED_AUTOGROUP=y
+diff --git a/kernel/cgroup.c b/kernel/cgroup.c
+index 0c753dd..a18b46e 100644
+--- a/kernel/cgroup.c
++++ b/kernel/cgroup.c
+@@ -5252,6 +5252,33 @@ static int __init cgroup_disable(char *str)
+ }
+ __setup("cgroup_disable=", cgroup_disable);
+
++static int __init cgroup_enable(char *str)
++{
++ struct cgroup_subsys *ss;
++ char *token;
++ int i;
++
++ while ((token = strsep(&str, ",")) != NULL) {
++ if (!*token)
++ continue;
++
++ /*
++ * cgroup_disable, being at boot time, can't know about
++ * module subsystems, so we don't worry about them.
++ */
++ for_each_builtin_subsys(ss, i) {
++ if (!strcmp(token, ss->name)) {
++ ss->disabled = 0;
++ printk(KERN_INFO "Disabling %s control group"
++ " subsystem\n", ss->name);
++ break;
++ }
++ }
++ }
++ return 1;
++}
++__setup("cgroup_enable=", cgroup_enable);
++
+ /**
+ * css_from_dir - get corresponding css from the dentry of a cgroup dir
+ * @dentry: directory dentry of interest
+diff --git a/mm/memcontrol.c b/mm/memcontrol.c
+index 9b35da2..a9891cc 100644
+--- a/mm/memcontrol.c
++++ b/mm/memcontrol.c
+@@ -7289,6 +7289,7 @@ struct cgroup_subsys mem_cgroup_subsys = {
+ .bind = mem_cgroup_bind,
+ .base_cftypes = mem_cgroup_files,
+ .early_init = 0,
++ .disabled = 1,
+ };
+
+ #ifdef CONFIG_MEMCG_SWAP
+--
+1.9.1
+