• Naoya Horiguchi's avatar
    mm: enable thp migration for shmem thp · e71769ae
    Naoya Horiguchi authored
    My testing for the latest kernel supporting thp migration showed an
    infinite loop in offlining the memory block that is filled with shmem
    thps.  We can get out of the loop with a signal, but kernel should return
    with failure in this case.
    
    What happens in the loop is that scan_movable_pages() repeats returning
    the same pfn without any progress.  That's because page migration always
    fails for shmem thps.
    
    In memory offline code, memory blocks containing unmovable pages should be
    prevented from being offline targets by has_unmovable_pages() inside
    start_isolate_page_range().  So it's possible to change migratability for
    non-anonymous thps to avoid the issue, but it introduces more complex and
    thp-specific handling in migration code, so it might not good.
    
    So this patch is suggesting to fix the issue by enabling thp migration for
    shmem thp.  Both of anon/shmem thp are migratable so we don't need
    precheck about the type of thps.
    
    Link: http://lkml.kernel.org/r/20180406030706.GA2434@hori1.linux.bs1.fc.nec.co.jp
    Fixes: commit 72b39cfc ("mm, memory_hotplug: do not fail offlining too early")
    Signed-off-by: default avatarNaoya Horiguchi <n-horiguchi@ah.jp.nec.com>
    Acked-by: default avatarKirill A. Shutemov <kirill.shutemov@linux.intel.com>
    Cc: Zi Yan <zi.yan@sent.com>
    Cc: Vlastimil Babka <vbabka@suse.cz>
    Cc: Michal Hocko <mhocko@kernel.org>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    e71769ae
migrate.c 77.9 KB