Messages in this thread Patch in this message | | | Date | Tue, 06 Dec 2005 21:56:17 +0800 | From | Wu Fengguang <> | Subject | [PATCH 09/13] mm: remove swap_cluster_max from scan_control |
| |
The use of sc.swap_cluster_max is weird and redundant.
The callers should just set sc.priority/sc.nr_to_reclaim, and let shrink_zone() decide the proper loop parameters.
Signed-off-by: Wu Fengguang <wfg@mail.ustc.edu.cn> ---
mm/vmscan.c | 15 ++++----------- 1 files changed, 4 insertions(+), 11 deletions(-)
--- linux-2.6.15-rc5-mm1.orig/mm/vmscan.c +++ linux-2.6.15-rc5-mm1/mm/vmscan.c @@ -76,12 +76,6 @@ struct scan_control { /* Can pages be swapped as part of reclaim? */ 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; }; #define lru_to_page(_head) (list_entry((_head)->prev, struct page, lru)) @@ -1121,7 +1115,6 @@ shrink_zone(struct zone *zone, struct sc nr_inactive &= ~(SWAP_CLUSTER_MAX - 1); sc->nr_to_scan = SWAP_CLUSTER_MAX; - sc->nr_to_reclaim = sc->swap_cluster_max; while (nr_active >= SWAP_CLUSTER_MAX * 1024 || nr_inactive) { if (nr_active >= SWAP_CLUSTER_MAX * 1024) { @@ -1260,7 +1253,7 @@ int try_to_free_pages(struct zone **zone sc.nr_scanned = 0; sc.nr_reclaimed = 0; sc.priority = priority; - sc.swap_cluster_max = SWAP_CLUSTER_MAX; + sc.nr_to_reclaim = SWAP_CLUSTER_MAX; if (!priority) disable_swap_token(); shrink_caches(zones, &sc); @@ -1272,7 +1265,7 @@ int try_to_free_pages(struct zone **zone } total_scanned += sc.nr_scanned; total_reclaimed += sc.nr_reclaimed; - if (total_reclaimed >= sc.swap_cluster_max) { + if (total_reclaimed >= SWAP_CLUSTER_MAX) { ret = 1; goto out; } @@ -1284,7 +1277,7 @@ int try_to_free_pages(struct zone **zone * that's undesirable in laptop mode, where we *want* lumpy * writeout. So in laptop mode, write out the whole world. */ - if (total_scanned > sc.swap_cluster_max + sc.swap_cluster_max/2) { + if (total_scanned > SWAP_CLUSTER_MAX * 3 / 2) { wakeup_pdflush(laptop_mode ? 0 : total_scanned); sc.may_writepage = 1; } @@ -1365,7 +1358,7 @@ loop_again: sc.nr_scanned = 0; sc.nr_reclaimed = 0; sc.priority = priority; - sc.swap_cluster_max = nr_pages ? nr_pages : SWAP_CLUSTER_MAX; + sc.nr_to_reclaim = nr_pages ? nr_pages : SWAP_CLUSTER_MAX; /* The swap token gets in the way of swapout... */ if (!priority) -- - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |