|
|
@@ -1,4 +1,4 @@
|
|
|
-From 0f95a2f2688ff44dc7080beaa2076741a0bdf510 Mon Sep 17 00:00:00 2001
|
|
|
+From 2b13c54592135b6fab269517ed687fa9f80bf8e5 Mon Sep 17 00:00:00 2001
|
|
|
From: Phil Elwell <[email protected]>
|
|
|
Date: Mon, 27 Nov 2017 17:14:54 +0000
|
|
|
Subject: [PATCH] cgroup: Disable cgroup "memory" by default
|
|
|
@@ -12,34 +12,46 @@ See: https://github.com/raspberrypi/linux/issues/1950
|
|
|
|
|
|
Signed-off-by: Phil Elwell <[email protected]>
|
|
|
---
|
|
|
- kernel/cgroup/cgroup.c | 30 ++++++++++++++++++++++++++++++
|
|
|
- 1 file changed, 30 insertions(+)
|
|
|
+ kernel/cgroup/cgroup.c | 38 ++++++++++++++++++++++++++++++++++++++
|
|
|
+ 1 file changed, 38 insertions(+)
|
|
|
|
|
|
--- a/kernel/cgroup/cgroup.c
|
|
|
+++ b/kernel/cgroup/cgroup.c
|
|
|
-@@ -5722,6 +5722,8 @@ int __init cgroup_init_early(void)
|
|
|
+@@ -5721,6 +5721,9 @@ int __init cgroup_init_early(void)
|
|
|
+ return 0;
|
|
|
}
|
|
|
|
|
|
- static u16 cgroup_disable_mask __initdata;
|
|
|
+static u16 cgroup_enable_mask __initdata;
|
|
|
+static int __init cgroup_disable(char *str);
|
|
|
-
|
|
|
++
|
|
|
/**
|
|
|
* cgroup_init - cgroup initialization
|
|
|
-@@ -5761,6 +5763,12 @@ int __init cgroup_init(void)
|
|
|
+ *
|
|
|
+@@ -5759,6 +5762,12 @@ int __init cgroup_init(void)
|
|
|
|
|
|
mutex_unlock(&cgroup_mutex);
|
|
|
|
|
|
-+ /* Apply an implicit disable... */
|
|
|
++ /*
|
|
|
++ * Apply an implicit disable, knowing that an explicit enable will
|
|
|
++ * prevent if from doing anything.
|
|
|
++ */
|
|
|
+ cgroup_disable("memory");
|
|
|
-+
|
|
|
-+ /* ...knowing that an explicit enable will override it. */
|
|
|
-+ cgroup_disable_mask &= ~cgroup_enable_mask;
|
|
|
+
|
|
|
for_each_subsys(ss, ssid) {
|
|
|
if (ss->early_init) {
|
|
|
struct cgroup_subsys_state *css =
|
|
|
-@@ -6180,6 +6188,28 @@ static int __init cgroup_disable(char *s
|
|
|
+@@ -6168,6 +6177,10 @@ static int __init cgroup_disable(char *s
|
|
|
+ strcmp(token, ss->legacy_name))
|
|
|
+ continue;
|
|
|
+
|
|
|
++ /* An explicit cgroup_enable overrides a disable */
|
|
|
++ if (cgroup_enable_mask & (1 << i))
|
|
|
++ continue;
|
|
|
++
|
|
|
+ static_branch_disable(cgroup_subsys_enabled_key[i]);
|
|
|
+ pr_info("Disabling %s control group subsystem\n",
|
|
|
+ ss->name);
|
|
|
+@@ -6177,6 +6190,31 @@ static int __init cgroup_disable(char *s
|
|
|
}
|
|
|
__setup("cgroup_disable=", cgroup_disable);
|
|
|
|
|
|
@@ -59,6 +71,9 @@ Signed-off-by: Phil Elwell <[email protected]>
|
|
|
+ continue;
|
|
|
+
|
|
|
+ cgroup_enable_mask |= 1 << i;
|
|
|
++ static_branch_enable(cgroup_subsys_enabled_key[i]);
|
|
|
++ pr_info("Enabling %s control group subsystem\n",
|
|
|
++ ss->name);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return 1;
|