lkml.org 
[lkml]   [2009]   [Nov]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 2/4] vmscan: make lru_index() helper function
    Date
    Current lru calculation (e.g. LRU_ACTIVE + file * LRU_FILE) is a bit
    ugly.
    To make helper function improve code readability a bit.

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

    diff --git a/mm/vmscan.c b/mm/vmscan.c
    index a58ff15..7e0245d 100644
    --- a/mm/vmscan.c
    +++ b/mm/vmscan.c
    @@ -156,6 +156,16 @@ static unsigned long zone_nr_lru_pages(struct zone *zone,
    return zone_page_state(zone, NR_LRU_BASE + lru);
    }

    +static inline enum lru_list lru_index(int active, int file)
    +{
    + int lru = LRU_BASE;
    + if (active)
    + lru += LRU_ACTIVE;
    + if (file)
    + lru += LRU_FILE;
    +
    + return lru;
    +}

    /*
    * Add a shrinker callback to be called from the vm
    @@ -978,13 +988,8 @@ static unsigned long isolate_pages_global(unsigned long nr,
    struct mem_cgroup *mem_cont,
    int active, int file)
    {
    - int lru = LRU_BASE;
    - if (active)
    - lru += LRU_ACTIVE;
    - if (file)
    - lru += LRU_FILE;
    - return isolate_lru_pages(nr, &z->lru[lru].list, dst, scanned, order,
    - mode, file);
    + return isolate_lru_pages(nr, &z->lru[lru_index(active, file)].list,
    + dst, scanned, order, mode, file);
    }

    /*
    @@ -1373,10 +1378,8 @@ static void shrink_active_list(unsigned long nr_pages, struct zone *zone,
    */
    reclaim_stat->recent_rotated[file] += nr_rotated;

    - move_active_pages_to_lru(zone, &l_active,
    - LRU_ACTIVE + file * LRU_FILE);
    - move_active_pages_to_lru(zone, &l_inactive,
    - LRU_BASE + file * LRU_FILE);
    + move_active_pages_to_lru(zone, &l_active, lru_index(1, file));
    + move_active_pages_to_lru(zone, &l_inactive, lru_index(0, file));
    __mod_zone_page_state(zone, NR_ISOLATED_ANON + file, -nr_taken);
    spin_unlock_irq(&zone->lru_lock);
    }
    --
    1.6.5.2




    \
     
     \ /
      Last update: 2009-11-27 01:21    [W:0.038 / U:285.832 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site