• Hugh Dickins's avatar
    mm: page migration use migration entry for swapcache too · 470f119f
    Hugh Dickins authored
    Hitherto page migration has avoided using a migration entry for a
    swapcache page mapped into userspace, apparently for historical reasons.
    So any page blessed with swapcache would entail a minor fault when it's
    next touched, which page migration otherwise tries to avoid.  Swapcache in
    an mlocked area is rare, so won't often matter, but still better fixed.
    Just rearrange the block in try_to_unmap_one(), to handle TTU_MIGRATION
    before checking PageAnon, that's all (apart from some reindenting).
    Well, no, that's not quite all: doesn't this by the way fix a soft_dirty
    bug, that page migration of a file page was forgetting to transfer the
    soft_dirty bit?  Probably not a serious bug: if I understand correctly,
    soft_dirty afficionados usually have to handle file pages separately
    anyway; but we publish the bit in /proc/<pid>/pagemap on file mappings as
    well as anonymous, so page migration ought not to perturb it.
    Signed-off-by: default avatarHugh Dickins <hughd@google.com>
    Cc: Christoph Lameter <cl@linux.com>
    Cc: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
    Cc: Rik van Riel <riel@redhat.com>
    Cc: Vlastimil Babka <vbabka@suse.cz>
    Cc: Davidlohr Bueso <dave@stgolabs.net>
    Cc: Oleg Nesterov <oleg@redhat.com>
    Cc: Sasha Levin <sasha.levin@oracle.com>
    Cc: Dmitry Vyukov <dvyukov@google.com>
    Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
    Reviewed-by: default avatarCyrill Gorcunov <gorcunov@openvz.org>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
rmap.c 46.9 KB