The patch titled Subject: arm64/mm: enable HugeTLB migration for contiguous bit HugeTLB pages has been added to the -mm tree. Its filename is arm64-mm-enable-hugetlb-migration-for-contiguous-bit-hugetlb-pages.patch This patch should soon appear at http://ozlabs.org/~akpm/mmots/broken-out/arm64-mm-enable-hugetlb-migration-for-contiguous-bit-hugetlb-pages.patch and later at http://ozlabs.org/~akpm/mmotm/broken-out/arm64-mm-enable-hugetlb-migration-for-contiguous-bit-hugetlb-pages.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/process/submit-checklist.rst when testing your code *** The -mm tree is included into linux-next and is updated there every 3-4 working days ------------------------------------------------------ From: Anshuman Khandual <anshuman.khandual@xxxxxxx> Subject: arm64/mm: enable HugeTLB migration for contiguous bit HugeTLB pages Let arm64 subscribe to the previously added framework in which architecture can inform whether a given huge page size is supported for migration. This just overrides the default function arch_hugetlb_migration_supported() and enables migration for all possible HugeTLB page sizes on arm64. With this, HugeTLB migration support on arm64 now covers all possible HugeTLB options. CONT PTE PMD CONT PMD PUD -------- --- -------- --- 4K: 64K 2M 32M 1G 16K: 2M 32M 1G 64K: 2M 512M 16G Link: http://lkml.kernel.org/r/1545121450-1663-6-git-send-email-anshuman.khandual@xxxxxxx Signed-off-by: Anshuman Khandual <anshuman.khandual@xxxxxxx> Reviewed-by: Naoya Horiguchi <n-horiguchi@xxxxxxxxxxxxx> Reviewed-by: Steve Capper <steve.capper@xxxxxxx> Acked-by: Catalin Marinas <catalin.marinas@xxxxxxx> Cc: Michal Hocko <mhocko@xxxxxxxxxx> Cc: Michal Hocko <mhocko@xxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- --- a/arch/arm64/include/asm/hugetlb.h~arm64-mm-enable-hugetlb-migration-for-contiguous-bit-hugetlb-pages +++ a/arch/arm64/include/asm/hugetlb.h @@ -20,6 +20,11 @@ #include <asm/page.h> +#ifdef CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION +#define arch_hugetlb_migration_supported arch_hugetlb_migration_supported +extern bool arch_hugetlb_migration_supported(struct hstate *h); +#endif + #define __HAVE_ARCH_HUGE_PTEP_GET static inline pte_t huge_ptep_get(pte_t *ptep) { --- a/arch/arm64/mm/hugetlbpage.c~arm64-mm-enable-hugetlb-migration-for-contiguous-bit-hugetlb-pages +++ a/arch/arm64/mm/hugetlbpage.c @@ -27,6 +27,26 @@ #include <asm/tlbflush.h> #include <asm/pgalloc.h> +#ifdef CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION +bool arch_hugetlb_migration_supported(struct hstate *h) +{ + size_t pagesize = huge_page_size(h); + + switch (pagesize) { +#ifdef CONFIG_ARM64_4K_PAGES + case PUD_SIZE: +#endif + case PMD_SIZE: + case CONT_PMD_SIZE: + case CONT_PTE_SIZE: + return true; + } + pr_warn("%s: unrecognized huge page size 0x%lx\n", + __func__, pagesize); + return false; +} +#endif + int pmd_huge(pmd_t pmd) { return pmd_val(pmd) && !(pmd_val(pmd) & PMD_TABLE_BIT); _ Patches currently in -mm which might be from anshuman.khandual@xxxxxxx are mm-replace-all-open-encodings-for-numa_no_node.patch mm-hugetlb-distinguish-between-migratability-and-movability.patch mm-hugetlb-enable-pud-level-huge-page-migration.patch mm-hugetlb-enable-arch-specific-huge-page-size-support-for-migration.patch arm64-mm-enable-hugetlb-migration.patch arm64-mm-enable-hugetlb-migration-for-contiguous-bit-hugetlb-pages.patch