Skip to content
  • Kirill A. Shutemov's avatar
    rmap: introduce rmap_walk_locked() · b9773199
    Kirill A. Shutemov authored
    
    
    This patchset rewrites freeze_page() and unfreeze_page() using
    try_to_unmap() and remove_migration_ptes().  Result is much simpler, but
    somewhat slower.
    
    Migration 8GiB worth of PMD-mapped THP:
    
      Baseline	20.21 +/- 0.393
      Patched	20.73 +/- 0.082
      Slowdown	1.03x
    
    It's 3% slower, comparing to 14% in v1.  I don't it should be a stopper.
    
    Splitting of PTE-mapped pages slowed more.  But this is not a common
    case.
    
    Migration 8GiB worth of PMD-mapped THP:
    
      Baseline	20.39 +/- 0.225
      Patched	22.43 +/- 0.496
      Slowdown	1.10x
    
    rmap_walk_locked() is the same as rmap_walk(), but the caller takes care
    of the relevant rmap lock.
    
    This is preparation for switching THP splitting from custom rmap walk in
    freeze_page()/unfreeze_page() to the generic one.
    
    There is no support for KSM pages for now: not clear which lock is
    implied.
    
    Signed-off-by: default avatarKirill A. Shutemov <kirill.shutemov@linux.intel.com>
    Cc: Andrea Arcangeli <aarcange@redhat.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    b9773199