lkml.org 
[lkml]   [2009]   [Dec]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 2/4] vmscan: get_scan_ratio cleanup
    Date
    The get_scan_ratio() should have all scan-ratio related calculations.
    Thus, this patch move some calculation into get_scan_ratio.

    Signed-off-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
    ---
    mm/vmscan.c | 23 ++++++++++++++---------
    1 files changed, 14 insertions(+), 9 deletions(-)

    diff --git a/mm/vmscan.c b/mm/vmscan.c
    index 2bbee91..640486b 100644
    --- a/mm/vmscan.c
    +++ b/mm/vmscan.c
    @@ -1501,6 +1501,13 @@ static void get_scan_ratio(struct zone *zone, struct scan_control *sc,
    unsigned long ap, fp;
    struct zone_reclaim_stat *reclaim_stat = get_reclaim_stat(zone, sc);

    + /* If we have no swap space, do not bother scanning anon pages. */
    + if (!sc->may_swap || (nr_swap_pages <= 0)) {
    + percent[0] = 0;
    + percent[1] = 100;
    + return;
    + }
    +
    anon = zone_nr_lru_pages(zone, sc, LRU_ACTIVE_ANON) +
    zone_nr_lru_pages(zone, sc, LRU_INACTIVE_ANON);
    file = zone_nr_lru_pages(zone, sc, LRU_ACTIVE_FILE) +
    @@ -1598,22 +1605,20 @@ static void shrink_zone(int priority, struct zone *zone,
    unsigned long nr_reclaimed = sc->nr_reclaimed;
    unsigned long nr_to_reclaim = sc->nr_to_reclaim;
    struct zone_reclaim_stat *reclaim_stat = get_reclaim_stat(zone, sc);
    - int noswap = 0;

    - /* If we have no swap space, do not bother scanning anon pages. */
    - if (!sc->may_swap || (nr_swap_pages <= 0)) {
    - noswap = 1;
    - percent[0] = 0;
    - percent[1] = 100;
    - } else
    - get_scan_ratio(zone, sc, percent);
    + get_scan_ratio(zone, sc, percent);

    for_each_evictable_lru(l) {
    int file = is_file_lru(l);
    unsigned long scan;

    + if (percent[file] == 0) {
    + nr[l] = 0;
    + continue;
    + }
    +
    scan = zone_nr_lru_pages(zone, sc, l);
    - if (priority || noswap) {
    + if (priority) {
    scan >>= priority;
    scan = (scan * percent[file]) / 100;
    }
    --
    1.6.5.2




    \
     
     \ /
      Last update: 2009-12-28 08:51    [W:0.027 / U:3.516 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site