aboutsummaryrefslogtreecommitdiffstats
path: root/mm/vmscan.c
diff options
context:
space:
mode:
Diffstat (limited to 'mm/vmscan.c')
-rw-r--r--mm/vmscan.c15
1 files changed, 4 insertions, 11 deletions
diff --git a/mm/vmscan.c b/mm/vmscan.c
index ec5ddccbf82e..c391c320dbaf 100644
--- a/mm/vmscan.c
+++ b/mm/vmscan.c
@@ -1969,9 +1969,10 @@ unsigned long try_to_free_pages(struct zonelist *zonelist, int order,
1969unsigned long mem_cgroup_shrink_node_zone(struct mem_cgroup *mem, 1969unsigned long mem_cgroup_shrink_node_zone(struct mem_cgroup *mem,
1970 gfp_t gfp_mask, bool noswap, 1970 gfp_t gfp_mask, bool noswap,
1971 unsigned int swappiness, 1971 unsigned int swappiness,
1972 struct zone *zone, int nid) 1972 struct zone *zone)
1973{ 1973{
1974 struct scan_control sc = { 1974 struct scan_control sc = {
1975 .nr_to_reclaim = SWAP_CLUSTER_MAX,
1975 .may_writepage = !laptop_mode, 1976 .may_writepage = !laptop_mode,
1976 .may_unmap = 1, 1977 .may_unmap = 1,
1977 .may_swap = !noswap, 1978 .may_swap = !noswap,
@@ -1979,13 +1980,8 @@ unsigned long mem_cgroup_shrink_node_zone(struct mem_cgroup *mem,
1979 .order = 0, 1980 .order = 0,
1980 .mem_cgroup = mem, 1981 .mem_cgroup = mem,
1981 }; 1982 };
1982 nodemask_t nm = nodemask_of_node(nid);
1983
1984 sc.gfp_mask = (gfp_mask & GFP_RECLAIM_MASK) | 1983 sc.gfp_mask = (gfp_mask & GFP_RECLAIM_MASK) |
1985 (GFP_HIGHUSER_MOVABLE & ~GFP_RECLAIM_MASK); 1984 (GFP_HIGHUSER_MOVABLE & ~GFP_RECLAIM_MASK);
1986 sc.nodemask = &nm;
1987 sc.nr_reclaimed = 0;
1988 sc.nr_scanned = 0;
1989 1985
1990 trace_mm_vmscan_memcg_softlimit_reclaim_begin(0, 1986 trace_mm_vmscan_memcg_softlimit_reclaim_begin(0,
1991 sc.may_writepage, 1987 sc.may_writepage,
@@ -2172,7 +2168,6 @@ loop_again:
2172 for (i = 0; i <= end_zone; i++) { 2168 for (i = 0; i <= end_zone; i++) {
2173 struct zone *zone = pgdat->node_zones + i; 2169 struct zone *zone = pgdat->node_zones + i;
2174 int nr_slab; 2170 int nr_slab;
2175 int nid, zid;
2176 2171
2177 if (!populated_zone(zone)) 2172 if (!populated_zone(zone))
2178 continue; 2173 continue;
@@ -2182,14 +2177,12 @@ loop_again:
2182 2177
2183 sc.nr_scanned = 0; 2178 sc.nr_scanned = 0;
2184 2179
2185 nid = pgdat->node_id;
2186 zid = zone_idx(zone);
2187 /* 2180 /*
2188 * Call soft limit reclaim before calling shrink_zone. 2181 * Call soft limit reclaim before calling shrink_zone.
2189 * For now we ignore the return value 2182 * For now we ignore the return value
2190 */ 2183 */
2191 mem_cgroup_soft_limit_reclaim(zone, order, sc.gfp_mask, 2184 mem_cgroup_soft_limit_reclaim(zone, order, sc.gfp_mask);
2192 nid, zid); 2185
2193 /* 2186 /*
2194 * We put equal pressure on every zone, unless one 2187 * We put equal pressure on every zone, unless one
2195 * zone has way too many pages free already. 2188 * zone has way too many pages free already.