On 01/23/2020 06:59 PM, Li Xinhai wrote: > vma_migratable() is called to check if pages in vma can be migrated > before go ahead to further actions. Currently it is used in below code > path: > - task_numa_work > - mbind > - move_pages > > For hugetlb mapping, whether vma is migratable or not is determined by: > - CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION > - arch_hugetlb_migration_supported > > Issue: current code only checks for CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION > alone, and no code should use it directly. (note that current code in > vma_migratable don't cause failure or bug because > unmap_and_move_huge_page() will catch unsupported hugepage and handle it > properly) > > This patch checks the two factors by hugepage_migration_supported for > impoving code logic and robustness. It will enable early bail out of > hugepage migration procedure, but because currently all architecture > supporting hugepage migration is able to support all page size, we would > not see performance gain with this patch applied. > > vma_migratable() is moved to mm/mempolicy.c, because of the circular > reference of mempolicy.h and hugetlb.h cause defining it as inline not > feasible. > > Signed-off-by: Li Xinhai <lixinhai.lxh@xxxxxxxxx> > Cc: Michal Hocko <mhocko@xxxxxxxx> > Cc: Mike Kravetz <mike.kravetz@xxxxxxxxxx> > Cc: Anshuman Khandual <anshuman.khandual@xxxxxxx> > Cc: Naoya Horiguchi <n-horiguchi@xxxxxxxxxxxxx> Reviewed-by: Anshuman Khandual <anshuman.khandual@xxxxxxx>