mm: memcontrol: switch soft limit default back to infinity
Commit 3e32cb2e0a
("mm: memcontrol: lockless page counters")
accidentally switched the soft limit default from infinity to zero,
which turns all memcgs with even a single page into soft limit excessors
and engages soft limit reclaim on all of them during global memory
pressure. This makes global reclaim generally more aggressive, but also
inverts the meaning of existing soft limit configurations where unset
soft limits are usually more generous than set ones.
Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>
Acked-by: Michal Hocko <mhocko@suse.cz>
Acked-by: Vladimir Davydov <vdavydov@parallels.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
70ecb3cb03
commit
24d404dc10
|
@ -4679,6 +4679,7 @@ mem_cgroup_css_alloc(struct cgroup_subsys_state *parent_css)
|
|||
if (parent_css == NULL) {
|
||||
root_mem_cgroup = memcg;
|
||||
page_counter_init(&memcg->memory, NULL);
|
||||
memcg->soft_limit = PAGE_COUNTER_MAX;
|
||||
page_counter_init(&memcg->memsw, NULL);
|
||||
page_counter_init(&memcg->kmem, NULL);
|
||||
}
|
||||
|
@ -4724,6 +4725,7 @@ mem_cgroup_css_online(struct cgroup_subsys_state *css)
|
|||
|
||||
if (parent->use_hierarchy) {
|
||||
page_counter_init(&memcg->memory, &parent->memory);
|
||||
memcg->soft_limit = PAGE_COUNTER_MAX;
|
||||
page_counter_init(&memcg->memsw, &parent->memsw);
|
||||
page_counter_init(&memcg->kmem, &parent->kmem);
|
||||
|
||||
|
@ -4733,6 +4735,7 @@ mem_cgroup_css_online(struct cgroup_subsys_state *css)
|
|||
*/
|
||||
} else {
|
||||
page_counter_init(&memcg->memory, NULL);
|
||||
memcg->soft_limit = PAGE_COUNTER_MAX;
|
||||
page_counter_init(&memcg->memsw, NULL);
|
||||
page_counter_init(&memcg->kmem, NULL);
|
||||
/*
|
||||
|
@ -4807,7 +4810,7 @@ static void mem_cgroup_css_reset(struct cgroup_subsys_state *css)
|
|||
mem_cgroup_resize_limit(memcg, PAGE_COUNTER_MAX);
|
||||
mem_cgroup_resize_memsw_limit(memcg, PAGE_COUNTER_MAX);
|
||||
memcg_update_kmem_limit(memcg, PAGE_COUNTER_MAX);
|
||||
memcg->soft_limit = 0;
|
||||
memcg->soft_limit = PAGE_COUNTER_MAX;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_MMU
|
||||
|
|
Loading…
Reference in New Issue