diff options
Diffstat (limited to 'mm')
-rw-r--r-- | mm/memcontrol.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/mm/memcontrol.c b/mm/memcontrol.c index 9e7a4e521917..2239e6dd4d4c 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c | |||
@@ -83,6 +83,9 @@ struct mem_cgroup *root_mem_cgroup __read_mostly; | |||
83 | /* Socket memory accounting disabled? */ | 83 | /* Socket memory accounting disabled? */ |
84 | static bool cgroup_memory_nosocket; | 84 | static bool cgroup_memory_nosocket; |
85 | 85 | ||
86 | /* Kernel memory accounting disabled? */ | ||
87 | static bool cgroup_memory_nokmem; | ||
88 | |||
86 | /* Whether the swap controller is active */ | 89 | /* Whether the swap controller is active */ |
87 | #ifdef CONFIG_MEMCG_SWAP | 90 | #ifdef CONFIG_MEMCG_SWAP |
88 | int do_swap_account __read_mostly; | 91 | int do_swap_account __read_mostly; |
@@ -2925,8 +2928,8 @@ static int memcg_propagate_kmem(struct mem_cgroup *memcg) | |||
2925 | * onlined after this point, because it has at least one child | 2928 | * onlined after this point, because it has at least one child |
2926 | * already. | 2929 | * already. |
2927 | */ | 2930 | */ |
2928 | if (cgroup_subsys_on_dfl(memory_cgrp_subsys) || | 2931 | if (memcg_kmem_online(parent) || |
2929 | memcg_kmem_online(parent)) | 2932 | (cgroup_subsys_on_dfl(memory_cgrp_subsys) && !cgroup_memory_nokmem)) |
2930 | ret = memcg_online_kmem(memcg); | 2933 | ret = memcg_online_kmem(memcg); |
2931 | mutex_unlock(&memcg_limit_mutex); | 2934 | mutex_unlock(&memcg_limit_mutex); |
2932 | return ret; | 2935 | return ret; |
@@ -5638,6 +5641,8 @@ static int __init cgroup_memory(char *s) | |||
5638 | continue; | 5641 | continue; |
5639 | if (!strcmp(token, "nosocket")) | 5642 | if (!strcmp(token, "nosocket")) |
5640 | cgroup_memory_nosocket = true; | 5643 | cgroup_memory_nosocket = true; |
5644 | if (!strcmp(token, "nokmem")) | ||
5645 | cgroup_memory_nokmem = true; | ||
5641 | } | 5646 | } |
5642 | return 0; | 5647 | return 0; |
5643 | } | 5648 | } |