diff options
author | Johannes Weiner <hannes@cmpxchg.org> | 2016-01-20 18:02:41 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2016-01-20 20:09:18 -0500 |
commit | 489c2a20a414351fe0813a727c34600c0f7292ae (patch) | |
tree | 3e1417700db70366ac8d9a73b38958c3904732db /mm | |
parent | 04823c833b3eaef7816e28e3727124394f6bb3c3 (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.c | 18 | ||||
-rw-r--r-- | mm/vmpressure.c | 2 |
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 |
3005 | static int memcg_update_kmem_limit(struct mem_cgroup *memcg, | 3005 | static 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 | */ |
5620 | void mem_cgroup_uncharge_skmem(struct mem_cgroup *memcg, unsigned int nr_pages) | 5620 | void 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 | ||