• Hugh Dickins's avatar
    mm,ksm: swapoff might need to copy · 9e16b7fb
    Hugh Dickins authored
    Before establishing that KSM page migration was the cause of my
    WARN_ON_ONCE(page_mapped(page))s, I suspected that they came from the
    lack of a ksm_might_need_to_copy() in swapoff's unuse_pte() - which in
    many respects is equivalent to faulting in a page.
    In fact I've never caught that as the cause: but in theory it does at
    least need the KSM_RUN_UNMERGE check in ksm_might_need_to_copy(), to
    avoid bringing a KSM page back in when it's not supposed to be.
    I intended to copy how it's done in do_swap_page(), but have a strong
    aversion to how "swapcache" ends up being used there: rework it with
    "page != swapcache".
    Signed-off-by: default avatarHugh Dickins <hughd@google.com>
    Cc: Mel Gorman <mgorman@suse.de>
    Cc: Petr Holasek <pholasek@redhat.com>
    Cc: Andrea Arcangeli <aarcange@redhat.com>
    Cc: Izik Eidus <izik.eidus@ravellosystems.com>
    Acked-by: default avatarJohannes Weiner <hannes@cmpxchg.org>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
swapfile.c 65.6 KB