]> git.baikalelectronics.ru Git - kernel.git/commit
arm64/hugetlb: fix CMA gigantic page order for non-4K PAGE_SIZE
authorMike Kravetz <mike.kravetz@oracle.com>
Tue, 5 Oct 2021 20:25:29 +0000 (13:25 -0700)
committerCatalin Marinas <catalin.marinas@arm.com>
Mon, 11 Oct 2021 17:45:19 +0000 (18:45 +0100)
commit2e5809a4ddb15969503e43b06662a9a725f613ea
treef714a1faff3965da0160f347a615a39413861d01
parent22b70e6f2da0a4c8b1421b00cfc3016bc9d4d9d4
arm64/hugetlb: fix CMA gigantic page order for non-4K PAGE_SIZE

For non-4K PAGE_SIZE configs, the largest gigantic huge page size is
CONT_PMD_SHIFT order. On arm64 with 64K PAGE_SIZE, the gigantic page is
16G. Therefore, one should be able to specify 'hugetlb_cma=16G' on the
kernel command line so that one gigantic page can be allocated from CMA.
However, when adding such an option the following message is produced:

hugetlb_cma: cma area should be at least 8796093022208 MiB

This is because the calculation for non-4K gigantic page order is
incorrect in the arm64 specific routine arm64_hugetlb_cma_reserve().

Fixes: abb7962adc80 ("arm64/hugetlb: Reserve CMA areas for gigantic pages on 16K and 64K configs")
Cc: <stable@vger.kernel.org> # 5.9.x
Signed-off-by: Mike Kravetz <mike.kravetz@oracle.com>
Reviewed-by: Anshuman Khandual <anshuman.khandual@arm.com>
Link: https://lore.kernel.org/r/20211005202529.213812-1-mike.kravetz@oracle.com
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
arch/arm64/mm/hugetlbpage.c