summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhil Elwell <phil@raspberrypi.org>2017-11-27 17:14:54 +0000
committerWilliam Breathitt Gray <william.gray@canonical.com>2020-09-21 10:10:03 -0400
commit64e543b88ea2a013e1d8e014e7c92c53df1322ed (patch)
treefb612f2cc46fae921bfb4e6fa78118e5e71caeda
parent9d1f6cdf13e02142fb930383d354c2a02e08a5ac (diff)
cgroup: Disable cgroup "memory" by default
Some Raspberry Pis have limited RAM and most users won't use the cgroup memory support so it is disabled by default. Enable with: cgroup_enable=memory See: https://github.com/raspberrypi/linux/issues/1950 Signed-off-by: Phil Elwell <phil@raspberrypi.org> (cherry picked from commit 3974389a4792bc3e18a4ec0318305715f19f71e8 https://github.com/raspberrypi/linux.git rpi-5.3.y) Signed-off-by: Hui Wang <hui.wang@canonical.com>
-rw-r--r--kernel/cgroup/cgroup.c30
1 files changed, 30 insertions, 0 deletions
diff --git a/kernel/cgroup/cgroup.c b/kernel/cgroup/cgroup.c
index 35faf082a709..9f97b287891b 100644
--- a/kernel/cgroup/cgroup.c
+++ b/kernel/cgroup/cgroup.c
@@ -5720,6 +5720,8 @@ int __init cgroup_init_early(void)
}
static u16 cgroup_disable_mask __initdata;
+static u16 cgroup_enable_mask __initdata;
+static int __init cgroup_disable(char *str);
/**
* cgroup_init - cgroup initialization
@@ -5759,6 +5761,12 @@ int __init cgroup_init(void)
mutex_unlock(&cgroup_mutex);
+ /* Apply an implicit disable... */
+ 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 =
@@ -6178,6 +6186,28 @@ 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;
+
+ for_each_subsys(ss, i) {
+ if (strcmp(token, ss->name) &&
+ strcmp(token, ss->legacy_name))
+ continue;
+
+ cgroup_enable_mask |= 1 << i;
+ }
+ }
+ return 1;
+}
+__setup("cgroup_enable=", cgroup_enable);
+
void __init __weak enable_debug_cgroup(void) { }
static int __init enable_cgroup_debug(char *str)