aboutsummaryrefslogtreecommitdiffstats
path: root/mm
diff options
context:
space:
mode:
authorJohannes Weiner <hannes@cmpxchg.org>2016-01-20 18:02:41 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2016-01-20 20:09:18 -0500
commit489c2a20a414351fe0813a727c34600c0f7292ae (patch)
tree3e1417700db70366ac8d9a73b38958c3904732db /mm
parent04823c833b3eaef7816e28e3727124394f6bb3c3 (diff)
mm: memcontrol: introduce CONFIG_MEMCG_LEGACY_KMEM
Let the user know that CONFIG_MEMCG_KMEM does not apply to the cgroup2 interface. This also makes legacy-only code sections stand out better. [arnd@arndb.de: mm: memcontrol: only manage socket pressure for CONFIG_INET] Signed-off-by: Johannes Weiner <hannes@cmpxchg.org> Cc: Michal Hocko <mhocko@suse.cz> Cc: Tejun Heo <tj@kernel.org> Acked-by: Vladimir Davydov <vdavydov@virtuozzo.com> Signed-off-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm')
-rw-r--r--mm/memcontrol.c18
-rw-r--r--mm/vmpressure.c2
2 files changed, 11 insertions, 9 deletions
diff --git a/mm/memcontrol.c b/mm/memcontrol.c
index 2239e6dd4d4c..92e8ab67b6df 100644
--- a/mm/memcontrol.c
+++ b/mm/memcontrol.c
@@ -3001,7 +3001,7 @@ static void memcg_free_kmem(struct mem_cgroup *memcg)
3001} 3001}
3002#endif /* !CONFIG_SLOB */ 3002#endif /* !CONFIG_SLOB */
3003 3003
3004#ifdef CONFIG_MEMCG_KMEM 3004#ifdef CONFIG_MEMCG_LEGACY_KMEM
3005static int memcg_update_kmem_limit(struct mem_cgroup *memcg, 3005static int memcg_update_kmem_limit(struct mem_cgroup *memcg,
3006 unsigned long limit) 3006 unsigned long limit)
3007{ 3007{
@@ -3025,7 +3025,7 @@ static int memcg_update_kmem_limit(struct mem_cgroup *memcg,
3025{ 3025{
3026 return -EINVAL; 3026 return -EINVAL;
3027} 3027}
3028#endif /* CONFIG_MEMCG_KMEM */ 3028#endif /* CONFIG_MEMCG_LEGACY_KMEM */
3029 3029
3030 3030
3031/* 3031/*
@@ -4039,7 +4039,7 @@ static struct cftype mem_cgroup_legacy_files[] = {
4039 .seq_show = memcg_numa_stat_show, 4039 .seq_show = memcg_numa_stat_show,
4040 }, 4040 },
4041#endif 4041#endif
4042#ifdef CONFIG_MEMCG_KMEM 4042#ifdef CONFIG_MEMCG_LEGACY_KMEM
4043 { 4043 {
4044 .name = "kmem.limit_in_bytes", 4044 .name = "kmem.limit_in_bytes",
4045 .private = MEMFILE_PRIVATE(_KMEM, RES_LIMIT), 4045 .private = MEMFILE_PRIVATE(_KMEM, RES_LIMIT),
@@ -4266,13 +4266,13 @@ mem_cgroup_css_online(struct cgroup_subsys_state *css)
4266 if (ret) 4266 if (ret)
4267 return ret; 4267 return ret;
4268 4268
4269#ifdef CONFIG_MEMCG_KMEM 4269#ifdef CONFIG_INET
4270#ifdef CONFIG_MEMCG_LEGACY_KMEM
4270 ret = tcp_init_cgroup(memcg); 4271 ret = tcp_init_cgroup(memcg);
4271 if (ret) 4272 if (ret)
4272 return ret; 4273 return ret;
4273#endif 4274#endif
4274 4275
4275#ifdef CONFIG_INET
4276 if (cgroup_subsys_on_dfl(memory_cgrp_subsys) && !cgroup_memory_nosocket) 4276 if (cgroup_subsys_on_dfl(memory_cgrp_subsys) && !cgroup_memory_nosocket)
4277 static_branch_inc(&memcg_sockets_enabled_key); 4277 static_branch_inc(&memcg_sockets_enabled_key);
4278#endif 4278#endif
@@ -4329,7 +4329,7 @@ static void mem_cgroup_css_free(struct cgroup_subsys_state *css)
4329 4329
4330 memcg_free_kmem(memcg); 4330 memcg_free_kmem(memcg);
4331 4331
4332#ifdef CONFIG_MEMCG_KMEM 4332#if defined(CONFIG_MEMCG_LEGACY_KMEM) && defined(CONFIG_INET)
4333 tcp_destroy_cgroup(memcg); 4333 tcp_destroy_cgroup(memcg);
4334#endif 4334#endif
4335 4335
@@ -5558,7 +5558,7 @@ void sock_update_memcg(struct sock *sk)
5558 memcg = mem_cgroup_from_task(current); 5558 memcg = mem_cgroup_from_task(current);
5559 if (memcg == root_mem_cgroup) 5559 if (memcg == root_mem_cgroup)
5560 goto out; 5560 goto out;
5561#ifdef CONFIG_MEMCG_KMEM 5561#ifdef CONFIG_MEMCG_LEGACY_KMEM
5562 if (!cgroup_subsys_on_dfl(memory_cgrp_subsys) && !memcg->tcp_mem.active) 5562 if (!cgroup_subsys_on_dfl(memory_cgrp_subsys) && !memcg->tcp_mem.active)
5563 goto out; 5563 goto out;
5564#endif 5564#endif
@@ -5587,7 +5587,7 @@ bool mem_cgroup_charge_skmem(struct mem_cgroup *memcg, unsigned int nr_pages)
5587{ 5587{
5588 gfp_t gfp_mask = GFP_KERNEL; 5588 gfp_t gfp_mask = GFP_KERNEL;
5589 5589
5590#ifdef CONFIG_MEMCG_KMEM 5590#ifdef CONFIG_MEMCG_LEGACY_KMEM
5591 if (!cgroup_subsys_on_dfl(memory_cgrp_subsys)) { 5591 if (!cgroup_subsys_on_dfl(memory_cgrp_subsys)) {
5592 struct page_counter *counter; 5592 struct page_counter *counter;
5593 5593
@@ -5619,7 +5619,7 @@ bool mem_cgroup_charge_skmem(struct mem_cgroup *memcg, unsigned int nr_pages)
5619 */ 5619 */
5620void mem_cgroup_uncharge_skmem(struct mem_cgroup *memcg, unsigned int nr_pages) 5620void mem_cgroup_uncharge_skmem(struct mem_cgroup *memcg, unsigned int nr_pages)
5621{ 5621{
5622#ifdef CONFIG_MEMCG_KMEM 5622#ifdef CONFIG_MEMCG_LEGACY_KMEM
5623 if (!cgroup_subsys_on_dfl(memory_cgrp_subsys)) { 5623 if (!cgroup_subsys_on_dfl(memory_cgrp_subsys)) {
5624 page_counter_uncharge(&memcg->tcp_mem.memory_allocated, 5624 page_counter_uncharge(&memcg->tcp_mem.memory_allocated,
5625 nr_pages); 5625 nr_pages);
diff --git a/mm/vmpressure.c b/mm/vmpressure.c
index 9a6c0704211c..89b1d441af4b 100644
--- a/mm/vmpressure.c
+++ b/mm/vmpressure.c
@@ -275,6 +275,7 @@ void vmpressure(gfp_t gfp, struct mem_cgroup *memcg, bool tree,
275 275
276 level = vmpressure_calc_level(scanned, reclaimed); 276 level = vmpressure_calc_level(scanned, reclaimed);
277 277
278#ifdef CONFIG_INET
278 if (level > VMPRESSURE_LOW) { 279 if (level > VMPRESSURE_LOW) {
279 /* 280 /*
280 * Let the socket buffer allocator know that 281 * Let the socket buffer allocator know that
@@ -286,6 +287,7 @@ void vmpressure(gfp_t gfp, struct mem_cgroup *memcg, bool tree,
286 */ 287 */
287 memcg->socket_pressure = jiffies + HZ; 288 memcg->socket_pressure = jiffies + HZ;
288 } 289 }
290#endif
289 } 291 }
290} 292}
291 293