lkml.org 
[lkml]   [2016]   [Jan]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 2/5] mm: workingset: #define radix entry eviction mask
    Date
    This is a compile-time constant, no need to calculate it on refault.

    Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>
    ---
    mm/workingset.c | 10 ++++++----
    1 file changed, 6 insertions(+), 4 deletions(-)

    diff --git a/mm/workingset.c b/mm/workingset.c
    index 61ead9e5549d..3ef92f6e41fe 100644
    --- a/mm/workingset.c
    +++ b/mm/workingset.c
    @@ -152,6 +152,10 @@
    * refault distance will immediately activate the refaulting page.
    */

    +#define EVICTION_SHIFT (RADIX_TREE_EXCEPTIONAL_ENTRY + \
    + ZONES_SHIFT + NODES_SHIFT)
    +#define EVICTION_MASK (~0UL >> EVICTION_SHIFT)
    +
    static void *pack_shadow(unsigned long eviction, struct zone *zone)
    {
    eviction = (eviction << NODES_SHIFT) | zone_to_nid(zone);
    @@ -168,7 +172,6 @@ static void unpack_shadow(void *shadow,
    unsigned long entry = (unsigned long)shadow;
    unsigned long eviction;
    unsigned long refault;
    - unsigned long mask;
    int zid, nid;

    entry >>= RADIX_TREE_EXCEPTIONAL_SHIFT;
    @@ -181,8 +184,7 @@ static void unpack_shadow(void *shadow,
    *zone = NODE_DATA(nid)->node_zones + zid;

    refault = atomic_long_read(&(*zone)->inactive_age);
    - mask = ~0UL >> (NODES_SHIFT + ZONES_SHIFT +
    - RADIX_TREE_EXCEPTIONAL_SHIFT);
    +
    /*
    * The unsigned subtraction here gives an accurate distance
    * across inactive_age overflows in most cases.
    @@ -199,7 +201,7 @@ static void unpack_shadow(void *shadow,
    * inappropriate activation leading to pressure on the active
    * list is not a problem.
    */
    - *distance = (refault - eviction) & mask;
    + *distance = (refault - eviction) & EVICTION_MASK;
    }

    /**
    --
    2.7.0
    \
     
     \ /
      Last update: 2016-01-26 22:41    [W:3.916 / U:0.048 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site