]> Git Repo - linux.git/commit - mm/ksm.c
ksm: cleanup stable_node chain collapse case
authorAndrea Arcangeli <[email protected]>
Thu, 6 Jul 2017 22:37:02 +0000 (15:37 -0700)
committerLinus Torvalds <[email protected]>
Thu, 6 Jul 2017 23:24:31 +0000 (16:24 -0700)
commit0ba1d0f7c41cdab306a3d30e036bc393c3ebba7e
tree3e236e2b9d3c5c6223d95525dc6277d45d51387a
parentb4fecc67cc569b14301f5a1111363d5818b8da5e
ksm: cleanup stable_node chain collapse case

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/[email protected]
Signed-off-by: Andrea Arcangeli <[email protected]>
Cc: Evgheni Dereveanchin <[email protected]>
Cc: Andrey Ryabinin <[email protected]>
Cc: Petr Holasek <[email protected]>
Cc: Hugh Dickins <[email protected]>
Cc: Arjan van de Ven <[email protected]>
Cc: Davidlohr Bueso <[email protected]>
Cc: Gavin Guo <[email protected]>
Cc: Jay Vosburgh <[email protected]>
Cc: Mel Gorman <[email protected]>
Cc: Dan Carpenter <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
mm/ksm.c
This page took 0.04331 seconds and 4 git commands to generate.