lkml.org 
[lkml]   [2005]   [Dec]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    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/

    \
     
     \ /
      Last update: 2005-12-06 14:41    [W:0.029 / U:0.612 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site