Commit 8cad761e authored by KOSAKI Motohiro's avatar KOSAKI Motohiro Committed by james toy

Now, All caller of reclaim use swap_cluster_max as SWAP_CLUSTER_MAX.

Then, we can remove it perfectly.
Signed-off-by: default avatarKOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Reviewed-by: default avatarRik van Riel <riel@redhat.com>
Reviewed-by: default avatarMinchan Kim <minchan.kim@gmail.com>
Cc: Mel Gorman <mel@csn.ul.ie>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
parent c0ebe14e
...@@ -71,12 +71,6 @@ struct scan_control { ...@@ -71,12 +71,6 @@ struct scan_control {
/* Can pages be swapped as part of reclaim? */ /* Can pages be swapped as part of reclaim? */
int may_swap; int may_swap;
/* This context's SWAP_CLUSTER_MAX. If freeing memory for
* suspend, we effectively ignore SWAP_CLUSTER_MAX.
* In this context, it doesn't matter that we scan the
* whole list at once. */
int swap_cluster_max;
int swappiness; int swappiness;
int all_unreclaimable; int all_unreclaimable;
...@@ -1137,7 +1131,7 @@ static unsigned long shrink_inactive_list(unsigned long max_scan, ...@@ -1137,7 +1131,7 @@ static unsigned long shrink_inactive_list(unsigned long max_scan,
unsigned long nr_anon; unsigned long nr_anon;
unsigned long nr_file; unsigned long nr_file;
nr_taken = sc->isolate_pages(sc->swap_cluster_max, nr_taken = sc->isolate_pages(SWAP_CLUSTER_MAX,
&page_list, &nr_scan, sc->order, mode, &page_list, &nr_scan, sc->order, mode,
zone, sc->mem_cgroup, 0, file); zone, sc->mem_cgroup, 0, file);
...@@ -1576,15 +1570,14 @@ static void get_scan_ratio(struct zone *zone, struct scan_control *sc, ...@@ -1576,15 +1570,14 @@ static void get_scan_ratio(struct zone *zone, struct scan_control *sc,
* until we collected @swap_cluster_max pages to scan. * until we collected @swap_cluster_max pages to scan.
*/ */
static unsigned long nr_scan_try_batch(unsigned long nr_to_scan, static unsigned long nr_scan_try_batch(unsigned long nr_to_scan,
unsigned long *nr_saved_scan, unsigned long *nr_saved_scan)
unsigned long swap_cluster_max)
{ {
unsigned long nr; unsigned long nr;
*nr_saved_scan += nr_to_scan; *nr_saved_scan += nr_to_scan;
nr = *nr_saved_scan; nr = *nr_saved_scan;
if (nr >= swap_cluster_max) if (nr >= SWAP_CLUSTER_MAX)
*nr_saved_scan = 0; *nr_saved_scan = 0;
else else
nr = 0; nr = 0;
...@@ -1603,7 +1596,6 @@ static void shrink_zone(int priority, struct zone *zone, ...@@ -1603,7 +1596,6 @@ static void shrink_zone(int priority, struct zone *zone,
unsigned long percent[2]; /* anon @ 0; file @ 1 */ unsigned long percent[2]; /* anon @ 0; file @ 1 */
enum lru_list l; enum lru_list l;
unsigned long nr_reclaimed = sc->nr_reclaimed; unsigned long nr_reclaimed = sc->nr_reclaimed;
unsigned long swap_cluster_max = sc->swap_cluster_max;
unsigned long nr_to_reclaim = sc->nr_to_reclaim; unsigned long nr_to_reclaim = sc->nr_to_reclaim;
struct zone_reclaim_stat *reclaim_stat = get_reclaim_stat(zone, sc); struct zone_reclaim_stat *reclaim_stat = get_reclaim_stat(zone, sc);
int noswap = 0; int noswap = 0;
...@@ -1626,15 +1618,15 @@ static void shrink_zone(int priority, struct zone *zone, ...@@ -1626,15 +1618,15 @@ static void shrink_zone(int priority, struct zone *zone,
scan = (scan * percent[file]) / 100; scan = (scan * percent[file]) / 100;
} }
nr[l] = nr_scan_try_batch(scan, nr[l] = nr_scan_try_batch(scan,
&reclaim_stat->nr_saved_scan[l], &reclaim_stat->nr_saved_scan[l]);
swap_cluster_max);
} }
while (nr[LRU_INACTIVE_ANON] || nr[LRU_ACTIVE_FILE] || while (nr[LRU_INACTIVE_ANON] || nr[LRU_ACTIVE_FILE] ||
nr[LRU_INACTIVE_FILE]) { nr[LRU_INACTIVE_FILE]) {
for_each_evictable_lru(l) { for_each_evictable_lru(l) {
if (nr[l]) { if (nr[l]) {
nr_to_scan = min(nr[l], swap_cluster_max); nr_to_scan = min_t(unsigned long,
nr[l], SWAP_CLUSTER_MAX);
nr[l] -= nr_to_scan; nr[l] -= nr_to_scan;
nr_reclaimed += shrink_list(l, nr_to_scan, nr_reclaimed += shrink_list(l, nr_to_scan,
...@@ -1842,7 +1834,6 @@ unsigned long try_to_free_pages(struct zonelist *zonelist, int order, ...@@ -1842,7 +1834,6 @@ unsigned long try_to_free_pages(struct zonelist *zonelist, int order,
struct scan_control sc = { struct scan_control sc = {
.gfp_mask = gfp_mask, .gfp_mask = gfp_mask,
.may_writepage = !laptop_mode, .may_writepage = !laptop_mode,
.swap_cluster_max = SWAP_CLUSTER_MAX,
.nr_to_reclaim = SWAP_CLUSTER_MAX, .nr_to_reclaim = SWAP_CLUSTER_MAX,
.may_unmap = 1, .may_unmap = 1,
.may_swap = 1, .may_swap = 1,
...@@ -1867,7 +1858,6 @@ unsigned long mem_cgroup_shrink_node_zone(struct mem_cgroup *mem, ...@@ -1867,7 +1858,6 @@ unsigned long mem_cgroup_shrink_node_zone(struct mem_cgroup *mem,
.may_writepage = !laptop_mode, .may_writepage = !laptop_mode,
.may_unmap = 1, .may_unmap = 1,
.may_swap = !noswap, .may_swap = !noswap,
.swap_cluster_max = SWAP_CLUSTER_MAX,
.swappiness = swappiness, .swappiness = swappiness,
.order = 0, .order = 0,
.mem_cgroup = mem, .mem_cgroup = mem,
...@@ -1901,7 +1891,6 @@ unsigned long try_to_free_mem_cgroup_pages(struct mem_cgroup *mem_cont, ...@@ -1901,7 +1891,6 @@ unsigned long try_to_free_mem_cgroup_pages(struct mem_cgroup *mem_cont,
.may_writepage = !laptop_mode, .may_writepage = !laptop_mode,
.may_unmap = 1, .may_unmap = 1,
.may_swap = !noswap, .may_swap = !noswap,
.swap_cluster_max = SWAP_CLUSTER_MAX,
.nr_to_reclaim = SWAP_CLUSTER_MAX, .nr_to_reclaim = SWAP_CLUSTER_MAX,
.swappiness = swappiness, .swappiness = swappiness,
.order = 0, .order = 0,
...@@ -1967,7 +1956,6 @@ static unsigned long balance_pgdat(pg_data_t *pgdat, int order) ...@@ -1967,7 +1956,6 @@ static unsigned long balance_pgdat(pg_data_t *pgdat, int order)
.gfp_mask = GFP_KERNEL, .gfp_mask = GFP_KERNEL,
.may_unmap = 1, .may_unmap = 1,
.may_swap = 1, .may_swap = 1,
.swap_cluster_max = SWAP_CLUSTER_MAX,
/* /*
* kswapd doesn't want to be bailed out while reclaim. because * kswapd doesn't want to be bailed out while reclaim. because
* we want to put equal scanning pressure on each zone. * we want to put equal scanning pressure on each zone.
...@@ -2352,7 +2340,6 @@ unsigned long shrink_all_memory(unsigned long nr_to_reclaim) ...@@ -2352,7 +2340,6 @@ unsigned long shrink_all_memory(unsigned long nr_to_reclaim)
.may_swap = 1, .may_swap = 1,
.may_unmap = 1, .may_unmap = 1,
.may_writepage = 1, .may_writepage = 1,
.swap_cluster_max = SWAP_CLUSTER_MAX,
.nr_to_reclaim = nr_to_reclaim, .nr_to_reclaim = nr_to_reclaim,
.hibernation_mode = 1, .hibernation_mode = 1,
.swappiness = vm_swappiness, .swappiness = vm_swappiness,
...@@ -2537,7 +2524,6 @@ static int __zone_reclaim(struct zone *zone, gfp_t gfp_mask, unsigned int order) ...@@ -2537,7 +2524,6 @@ static int __zone_reclaim(struct zone *zone, gfp_t gfp_mask, unsigned int order)
.may_writepage = !!(zone_reclaim_mode & RECLAIM_WRITE), .may_writepage = !!(zone_reclaim_mode & RECLAIM_WRITE),
.may_unmap = !!(zone_reclaim_mode & RECLAIM_SWAP), .may_unmap = !!(zone_reclaim_mode & RECLAIM_SWAP),
.may_swap = 1, .may_swap = 1,
.swap_cluster_max = SWAP_CLUSTER_MAX,
.nr_to_reclaim = max_t(unsigned long, nr_pages, .nr_to_reclaim = max_t(unsigned long, nr_pages,
SWAP_CLUSTER_MAX), SWAP_CLUSTER_MAX),
.gfp_mask = gfp_mask, .gfp_mask = gfp_mask,
......
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