Commit 42e9abb6 authored by Daisuke Nishimura's avatar Daisuke Nishimura Committed by Linus Torvalds

memcg: change try_to_free_pages to hierarchical_reclaim

mem_cgroup_hierarchicl_reclaim() works properly even when !use_hierarchy
now (by memcg-hierarchy-avoid-unnecessary-reclaim.patch), so, instead of
try_to_free_mem_cgroup_pages(), it should be used in many cases.

The only exception is force_empty.  The group has no children in this
case.
Signed-off-by: default avatarDaisuke Nishimura <nishimura@mxp.nes.nec.co.jp>
Acked-by: default avatarKAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Acked-by: default avatarBalbir Singh <balbir@linux.vnet.ibm.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 7f4d454d
...@@ -1430,8 +1430,7 @@ int mem_cgroup_shrink_usage(struct mm_struct *mm, gfp_t gfp_mask) ...@@ -1430,8 +1430,7 @@ int mem_cgroup_shrink_usage(struct mm_struct *mm, gfp_t gfp_mask)
rcu_read_unlock(); rcu_read_unlock();
do { do {
progress = try_to_free_mem_cgroup_pages(mem, gfp_mask, true, progress = mem_cgroup_hierarchical_reclaim(mem, gfp_mask, true);
get_swappiness(mem));
progress += mem_cgroup_check_under_limit(mem); progress += mem_cgroup_check_under_limit(mem);
} while (!progress && --retry); } while (!progress && --retry);
...@@ -1475,10 +1474,8 @@ static int mem_cgroup_resize_limit(struct mem_cgroup *memcg, ...@@ -1475,10 +1474,8 @@ static int mem_cgroup_resize_limit(struct mem_cgroup *memcg,
if (!ret) if (!ret)
break; break;
progress = try_to_free_mem_cgroup_pages(memcg, progress = mem_cgroup_hierarchical_reclaim(memcg, GFP_KERNEL,
GFP_KERNEL, false);
false,
get_swappiness(memcg));
if (!progress) retry_count--; if (!progress) retry_count--;
} }
...@@ -1519,8 +1516,7 @@ int mem_cgroup_resize_memsw_limit(struct mem_cgroup *memcg, ...@@ -1519,8 +1516,7 @@ int mem_cgroup_resize_memsw_limit(struct mem_cgroup *memcg,
break; break;
oldusage = res_counter_read_u64(&memcg->memsw, RES_USAGE); oldusage = res_counter_read_u64(&memcg->memsw, RES_USAGE);
try_to_free_mem_cgroup_pages(memcg, GFP_KERNEL, true, mem_cgroup_hierarchical_reclaim(memcg, GFP_KERNEL, true);
get_swappiness(memcg));
curusage = res_counter_read_u64(&memcg->memsw, RES_USAGE); curusage = res_counter_read_u64(&memcg->memsw, RES_USAGE);
if (curusage >= oldusage) if (curusage >= oldusage)
retry_count--; retry_count--;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment