lkml.org 
[lkml]   [2010]   [Dec]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4/6] mm: kswapd: Reset kswapd_max_order and classzone_idx after reading
    Date
    When kswapd wakes up, it reads its order and classzone from pgdat and
    calls balance_pgdat. While its awake, it potentially reclaimes at a high
    order and a low classzone index. This might have been a once-off that
    was not required by subsequent callers. However, because the pgdat
    values were not reset, they remain artifically high while
    balance_pgdat() is running and potentially kswapd enters a second
    unnecessary reclaim cycle. Reset the pgdat order and classzone index
    after reading.

    Signed-off-by: Mel Gorman <mel@csn.ul.ie>
    Reviewed-by: Minchan Kim <minchan.kim@gmail.com>
    Reviewed-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
    ---
    mm/vmscan.c | 2 ++
    1 files changed, 2 insertions(+), 0 deletions(-)

    diff --git a/mm/vmscan.c b/mm/vmscan.c
    index 4d968b0..e1be4e8 100644
    --- a/mm/vmscan.c
    +++ b/mm/vmscan.c
    @@ -2646,6 +2646,8 @@ static int kswapd(void *p)
    kswapd_try_to_sleep(pgdat, order);
    order = pgdat->kswapd_max_order;
    classzone_idx = pgdat->classzone_idx;
    + pgdat->kswapd_max_order = 0;
    + pgdat->classzone_idx = MAX_NR_ZONES - 1;
    }

    ret = try_to_freeze();
    --
    1.7.1


    \
     
     \ /
      Last update: 2010-12-10 16:49    [W:0.024 / U:29.884 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site