]> 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)
commite2ea1084eaa5139059bc8952fc9c0d438f1ab696
treef714a1faff3965da0160f347a615a39413861d01
parentdd653df4ff83feda9bf7a3354bc233fc03cfb732
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: 357a74030143 ("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