Skip to content
  • Andrea Arcangeli's avatar
    ksm: cleanup stable_node chain collapse case · 0ba1d0f7
    Andrea Arcangeli authored
    Patch series "KSMscale cleanup/optimizations".
    
    There are no fixes here it's just minor cleanups and optimizations.
    
    1/3 removes makes the "fix" for the stale stable_node fall in the
        standard case without introducing new cases.  Setting stable_node to
        NULL was marginally safer, but stale pointer is still wiped from the
        caller, this looks cleaner.
    
    2/3 should fix the false positive from Dan's static checker.
    
    3/3 is a microoptimization to apply the the refile of future merge
        candidate dups at the head of the chain in all cases and to skip it in
        one case where we did it and but it was a noop (to avoid checking if
        it was already at the head but now we've to check it anyway so it got
        optimized away).
    
    This patch (of 3):
    
    When the stable_node chain is collapsed we can as well set the caller
    stable_node to match the returned stable_node_dup in chain_prune().
    
    This way the collapse case becomes indistinguishable from the regular
    stable_node case and we can remove two branches from the KSM page
    migration handling slow paths.
    
    While it was all correct this looks cleaner (and faster) as the caller has
    to deal with fewer special cases.
    
    Link: http://lkml.kernel.org/r/20170518173721.22316-2-aarcange@redhat.com
    
    
    Signed-off-by: default avatarAndrea Arcangeli <aarcange@redhat.com>
    Cc: Evgheni Dereveanchin <ederevea@redhat.com>
    Cc: Andrey Ryabinin <aryabinin@virtuozzo.com>
    Cc: Petr Holasek <pholasek@redhat.com>
    Cc: Hugh Dickins <hughd@google.com>
    Cc: Arjan van de Ven <arjan@linux.intel.com>
    Cc: Davidlohr Bueso <dave@stgolabs.net>
    Cc: Gavin Guo <gavin.guo@canonical.com>
    Cc: Jay Vosburgh <jay.vosburgh@canonical.com>
    Cc: Mel Gorman <mgorman@techsingularity.net>
    Cc: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    0ba1d0f7