memcg: add inactive_anon_is_low()
authorKOSAKI Motohiro <[email protected]>
Thu, 8 Jan 2009 02:08:18 +0000 (18:08 -0800)
committerLinus Torvalds <[email protected]>
Thu, 8 Jan 2009 16:31:08 +0000 (08:31 -0800)
commit14797e2363c2b2f1ce139fd1c5a215e4e05aa1d9
treea56edaa680c7c338a5a3043aa24897d7f668b6c9
parent549927620b04a8f8073ce2ee2a8977f209af2ee5
memcg: add inactive_anon_is_low()

The inactive_anon_is_low() is key component of active/inactive anon
balancing on reclaim.  However current inactive_anon_is_low() function
only consider global reclaim.

Therefore, we need following ugly scan_global_lru() condition.

if (lru == LRU_ACTIVE_ANON &&
    (!scan_global_lru(sc) || inactive_anon_is_low(zone))) {
shrink_active_list(nr_to_scan, zone, sc, priority, file);
return 0;

it cause that memcg reclaim always deactivate pages when shrink_list() is
called.  To make mem_cgroup_inactive_anon_is_low() improve active/inactive
anon balancing of memcgroup.

Acked-by: KAMEZAWA Hiroyuki <[email protected]>
Acked-by: Rik van Riel <[email protected]>
Signed-off-by: KOSAKI Motohiro <[email protected]>
Cc: Cyrill Gorcunov <[email protected]>
Cc: "Pekka Enberg" <[email protected]>
Cc: Balbir Singh <[email protected]>
Cc: Daisuke Nishimura <[email protected]>
Cc: Hugh Dickins <[email protected]>
Cc: KOSAKI Motohiro <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
include/linux/memcontrol.h
mm/memcontrol.c
mm/vmscan.c