• Miaohe Lin's avatar
    Revert "mm: migrate: skip shared exec THP for NUMA balancing" · 7ee820ee
    Miaohe Lin authored
    This reverts commit c77c5cba.
    
    Since commit c77c5cba ("mm: migrate: skip shared exec THP for NUMA
    balancing"), the NUMA balancing would skip shared exec transhuge page.
    But this enhancement is not suitable for transhuge page.  Because it's
    required that page_mapcount() must be 1 due to no migration pte dance is
    done here.  On the other hand, the shared exec transhuge page will leave
    the migrate_misplaced_page() with pte entry untouched and page locked.
    Thus pagefault for NUMA will be triggered again and deadlock occurs when
    we start waiting for the page lock held by ourselves.
    
    Yang Shi said:
    
     "Thanks for catching this. By relooking the code I think the other
      important reason for removing this is
      migrate_misplaced_transhuge_page() actually can't see shared exec
      file THP at all since page_lock_anon_vma_read() is called before
      and if page is not anonymous page it will just restore the PMD
      without migrating anything.
      The pages for private mapped file vma may be anonymous pages due to
      COW but they can't be THP so it won't trigger THP numa fault at all. I
      think this is why no bug was reported. I overlooked this in the first
      place."
    
    Link: https://lkml.kernel.org/r/20210325131524.48181-6-linmiaohe@huawei.com
    
    Signed-off-by: default avatarMiaohe Lin <linmiaohe@huawei.com>
    Reviewed-by: default avatarYang Shi <shy828301@gmail.com>
    Cc: Alistair Popple <apopple@nvidia.com>
    Cc: David Hildenbrand <david@redhat.com>
    Cc: Jerome Glisse <jglisse@redhat.com>
    Cc: Rafael Aquini <aquini@redhat.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    7ee820ee
migrate.c 81.3 KB