aboutsummaryrefslogtreecommitdiffstats
path: root/mm
diff options
context:
space:
mode:
Diffstat (limited to 'mm')
-rw-r--r--mm/memcontrol.c9
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? */
84static bool cgroup_memory_nosocket; 84static bool cgroup_memory_nosocket;
85 85
86/* Kernel memory accounting disabled? */
87static 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
88int do_swap_account __read_mostly; 91int 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}