lkml.org 
[lkml]   [2021]   [Oct]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.14 026/151] arm64/hugetlb: fix CMA gigantic page order for non-4K PAGE_SIZE
    Date
    From: Mike Kravetz <mike.kravetz@oracle.com>

    commit 2e5809a4ddb15969503e43b06662a9a725f613ea upstream.

    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>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    arch/arm64/mm/hugetlbpage.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    --- a/arch/arm64/mm/hugetlbpage.c
    +++ b/arch/arm64/mm/hugetlbpage.c
    @@ -43,7 +43,7 @@ void __init arm64_hugetlb_cma_reserve(vo
    #ifdef CONFIG_ARM64_4K_PAGES
    order = PUD_SHIFT - PAGE_SHIFT;
    #else
    - order = CONT_PMD_SHIFT + PMD_SHIFT - PAGE_SHIFT;
    + order = CONT_PMD_SHIFT - PAGE_SHIFT;
    #endif
    /*
    * HugeTLB CMA reservation is required for gigantic

    \
     
     \ /
      Last update: 2021-10-18 15:50    [W:5.153 / U:0.092 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site