diff options
| author | Chris Metcalf <cmetcalf@tilera.com> | 2010-08-13 19:59:15 -0400 | 
|---|---|---|
| committer | Chris Metcalf <cmetcalf@tilera.com> | 2010-08-13 19:59:15 -0400 | 
| commit | 7d72e6fa56c4100b9669efe0044f77ed9eb785a1 (patch) | |
| tree | 5e90bf4969809a1ab20b97432b85be20ccfaa1f4 /mm/vmscan.c | |
| parent | ba00376b0b13f234d839541a7b36a5bf5c2a4036 (diff) | |
| parent | 2be1f3a73dd02e38e181cf5abacb3d45a6a2d6b8 (diff) | |
Merge branch 'master' into for-linus
Diffstat (limited to 'mm/vmscan.c')
| -rw-r--r-- | mm/vmscan.c | 15 | 
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, | |||
| 1969 | unsigned long mem_cgroup_shrink_node_zone(struct mem_cgroup *mem, | 1969 | unsigned 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. | 
