powerpc/mm/book3s64: Skip 16G page reservation with radix
authorAneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
Mon, 22 Jun 2020 06:40:19 +0000 (12:10 +0530)
committerMichael Ellerman <mpe@ellerman.id.au>
Mon, 22 Jun 2020 10:29:51 +0000 (20:29 +1000)
With hash translation, the hypervisor can hint the LPAR about 16GB contiguous range
via ibm,expected#pages. The kernel marks the range specified in the device tree
as reserved. Avoid doing this when using radix translation. Radix translation
only supports 1G gigantic hugepage and kernel can do the 1G gigantic hugepage
allocation via early memblock reservation. This can be done because with radix
translation pages are not required to be contiguous on the host.

Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20200622064019.16682-1-aneesh.kumar@linux.ibm.com
arch/powerpc/mm/book3s64/hash_utils.c

index 084287f..eec6f4e 100644 (file)
@@ -596,7 +596,7 @@ static void __init htab_scan_page_sizes(void)
        }
 
 #ifdef CONFIG_HUGETLB_PAGE
-       if (!hugetlb_disabled) {
+       if (!hugetlb_disabled && !early_radix_enabled() ) {
                /* Reserve 16G huge page memory sections for huge pages */
                of_scan_flat_dt(htab_dt_scan_hugepage_blocks, NULL);
        }