• V
    mm: munlock: bypass per-cpu pvec for putback_lru_page · 56afe477
    Vlastimil Babka 提交于
    After introducing batching by pagevecs into munlock_vma_range(), we can
    further improve performance by bypassing the copying into per-cpu pagevec
    and the get_page/put_page pair associated with that.  Instead we perform
    LRU putback directly from our pagevec.  However, this is possible only for
    single-mapped pages that are evictable after munlock.  Unevictable pages
    require rechecking after putting on the unevictable list, so for those we
    fallback to putback_lru_page(), hich handles that.
    
    After this patch, a 13% speedup was measured for munlocking a 56GB large
    memory area with THP disabled.
    
    [akpm@linux-foundation.org:clarify comment]
    Signed-off-by: NVlastimil Babka <vbabka@suse.cz>
    Reviewed-by: NJörn Engel <joern@logfs.org>
    Acked-by: NMel Gorman <mgorman@suse.de>
    Cc: Michel Lespinasse <walken@google.com>
    Cc: Hugh Dickins <hughd@google.com>
    Cc: Rik van Riel <riel@redhat.com>
    Cc: Johannes Weiner <hannes@cmpxchg.org>
    Cc: Michal Hocko <mhocko@suse.cz>
    Cc: Vlastimil Babka <vbabka@suse.cz>
    Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
    56afe477
mlock.c 19.7 KB