mm/hugetlb: enable PUD level huge page migration
authorAnshuman Khandual <anshuman.khandual@arm.com>
Tue, 5 Mar 2019 23:43:48 +0000 (15:43 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 6 Mar 2019 05:07:15 +0000 (21:07 -0800)
Architectures like arm64 have PUD level HugeTLB pages for certain configs
(1GB huge page is PUD based on ARM64_4K_PAGES base page size) that can
be enabled for migration.  It can be achieved through checking for
PUD_SHIFT order based HugeTLB pages during migration.

Link: http://lkml.kernel.org/r/1545121450-1663-3-git-send-email-anshuman.khandual@arm.com
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
Reviewed-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
Reviewed-by: Steve Capper <steve.capper@arm.com>
Acked-by: Michal Hocko <mhocko@suse.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Michal Hocko <mhocko@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
include/linux/hugetlb.h

index 1b858d795731f1783aaa06e90ede54a4d8e4e55e..70bcd897332342bf439606715a56761f0e9ae199 100644 (file)
@@ -497,7 +497,8 @@ static inline bool hugepage_migration_supported(struct hstate *h)
 {
 #ifdef CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION
        if ((huge_page_shift(h) == PMD_SHIFT) ||
-               (huge_page_shift(h) == PGDIR_SHIFT))
+               (huge_page_shift(h) == PUD_SHIFT) ||
+                       (huge_page_shift(h) == PGDIR_SHIFT))
                return true;
        else
                return false;