Re: [PATCH v5] mm/mempolicy: Checking hugepage migration is supported by arch in vma_migratable

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 1/23/20 5:29 AM, 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>

Thanks for continuing to refine this!  The commit message looks much better.

Un-inlining vma_migratable() should not be an issue as no hot paths make use
of the routine.

Reviewed-by: Mike Kravetz <mike.kravetz@xxxxxxxxxx>
-- 
Mike Kravetz




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux