mm/memcg: use vm_swappiness from target memory cgroup
Use vm_swappiness from memory cgroup which is triggered this memory reclaim. This is more reasonable and allows to kill one argument. [akpm@linux-foundation.org: fix build (patch skew)] Signed-off-by: Konstantin Khlebnikov <khlebnikov@openvz.org> Acked-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujtisu.com> Cc: Hugh Dickins <hughd@google.com> Cc: Glauber Costa <glommer@parallels.com> Cc: Michal Hocko <mhocko@suse.cz> Cc: Johannes Weiner <hannes@cmpxchg.org> Cc: Minchan Kim <minchan@kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
748dad36d6
commit
3d58ab5c97
11
mm/vmscan.c
11
mm/vmscan.c
|
@ -1622,12 +1622,11 @@ static unsigned long shrink_list(enum lru_list lru, unsigned long nr_to_scan,
|
||||||
return shrink_inactive_list(nr_to_scan, mz, sc, priority, lru);
|
return shrink_inactive_list(nr_to_scan, mz, sc, priority, lru);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int vmscan_swappiness(struct mem_cgroup_zone *mz,
|
static int vmscan_swappiness(struct scan_control *sc)
|
||||||
struct scan_control *sc)
|
|
||||||
{
|
{
|
||||||
if (global_reclaim(sc))
|
if (global_reclaim(sc))
|
||||||
return vm_swappiness;
|
return vm_swappiness;
|
||||||
return mem_cgroup_swappiness(mz->mem_cgroup);
|
return mem_cgroup_swappiness(sc->target_mem_cgroup);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -1695,8 +1694,8 @@ static void get_scan_count(struct mem_cgroup_zone *mz, struct scan_control *sc,
|
||||||
* With swappiness at 100, anonymous and file have the same priority.
|
* With swappiness at 100, anonymous and file have the same priority.
|
||||||
* This scanning priority is essentially the inverse of IO cost.
|
* This scanning priority is essentially the inverse of IO cost.
|
||||||
*/
|
*/
|
||||||
anon_prio = vmscan_swappiness(mz, sc);
|
anon_prio = vmscan_swappiness(sc);
|
||||||
file_prio = 200 - vmscan_swappiness(mz, sc);
|
file_prio = 200 - vmscan_swappiness(sc);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* OK, so we have swap space and a fair amount of page cache
|
* OK, so we have swap space and a fair amount of page cache
|
||||||
|
@ -1741,7 +1740,7 @@ out:
|
||||||
unsigned long scan;
|
unsigned long scan;
|
||||||
|
|
||||||
scan = zone_nr_lru_pages(mz, lru);
|
scan = zone_nr_lru_pages(mz, lru);
|
||||||
if (priority || noswap || !vmscan_swappiness(mz, sc)) {
|
if (priority || noswap || !vmscan_swappiness(sc)) {
|
||||||
scan >>= priority;
|
scan >>= priority;
|
||||||
if (!scan && force_scan)
|
if (!scan && force_scan)
|
||||||
scan = SWAP_CLUSTER_MAX;
|
scan = SWAP_CLUSTER_MAX;
|
||||||
|
|
Loading…
Reference in New Issue