• Minchan Kim's avatar
    vmscan: prevent background aging of anon page in no swap system · 74e3f3c3
    Minchan Kim authored
    Ying Han reported that backing aging of anon pages in no swap system
    causes unnecessary TLB flush.
    
    When I sent a patch(69c85481), I wanted this patch but Rik pointed out
    and allowed aging of anon pages to give a chance to promote from inactive
    to active LRU.
    
    It has a two problem.
    
    1) non-swap system
    
    Never make sense to age anon pages.
    
    2) swap configured but still doesn't swapon
    
    It doesn't make sense to age anon pages until swap-on time.  But it's
    arguable.  If we have aged anon pages by swapon, VM have moved anon pages
    from active to inactive.  And in the time swapon by admin, the VM can't
    reclaim hot pages so we can protect hot pages swapout.
    
    But let's think about it.  When does swap-on happen?  It depends on admin.
     we can't expect it.  Nonetheless, we have done aging of anon pages to
    protect hot pages swapout.  It means we lost run time overhead when below
    high watermark but gain hot page swap-[in/out] overhead when VM decide
    swapout.  Is it true?  Let's think more detail.  We don't promote anon
    pages in case of non-swap system.  So even though VM does aging of anon
    pages, the pages would be in inactive LRU for a long time.  It means many
    of pages in there would mark access bit again.  So access bit hot/code
    separation would be pointless.
    
    This patch prevents unnecessary anon pages demotion in not-yet-swapon and
    non-configured swap system.  Even, in non-configuared swap system
    inactive_anon_is_low can be compiled out.
    
    It could make side effect that hot anon pages could swap out when admin
    does swap on.  But I think sooner or later it would be steady state.  So
    it's not a big problem.
    
    We could lose someting but gain more thing(TLB flush and unnecessary
    function call to demote anon pages).
    Signed-off-by: default avatarYing Han <yinghan@google.com>
    Signed-off-by: default avatarMinchan Kim <minchan.kim@gmail.com>
    Reviewed-by: default avatarRik van Riel <riel@redhat.com>
    Reviewed-by: default avatarKOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
    Cc: Johannes Weiner <hannes@cmpxchg.org>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    74e3f3c3
vmscan.c 82.6 KB