[PATCH] powerpc/mm: Check gigantic page range correctly inside memblock
Aneesh Kumar K.V
aneesh.kumar at linux.vnet.ibm.com
Wed Jul 5 14:33:04 AEST 2017
On Monday 03 July 2017 01:01 PM, Anshuman Khandual wrote:
> The gigantic page range received from platform actually extends
> upto (block_size * expeted_pages) starting at any given address
> instead of just a single 16GB page.
>
> Fixes: 4792adbac9eb ("powerpc: Don't use a 16G page if beyond mem= limits")
> Signed-off-by: Anshuman Khandual <khandual at linux.vnet.ibm.com>
> ---
> Though in actual experiments never seen multiple gigantic pages (16GB)
> starting at the same address. But again its very much possible looking
> at the device tree property interfaces and depending upon what PowerVM
> provides.
>
> arch/powerpc/mm/hash_utils_64.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/powerpc/mm/hash_utils_64.c b/arch/powerpc/mm/hash_utils_64.c
> index f2095ce..a3f1e7d 100644
> --- a/arch/powerpc/mm/hash_utils_64.c
> +++ b/arch/powerpc/mm/hash_utils_64.c
> @@ -507,7 +507,7 @@ static int __init htab_dt_scan_hugepage_blocks(unsigned long node,
> printk(KERN_INFO "Huge page(16GB) memory: "
> "addr = 0x%lX size = 0x%lX pages = %d\n",
> phys_addr, block_size, expected_pages);
> - if (phys_addr + (16 * GB) <= memblock_end_of_DRAM()) {
> + if (phys_addr + block_size * expected_pages <= memblock_end_of_DRAM()) {
> memblock_reserve(phys_addr, block_size * expected_pages);
> add_gpage(phys_addr, block_size, expected_pages);
> }
>
This was already posted by another person.
https://lkml.kernel.org/r/20170112090906.17864-1-rui.teng@linux.vnet.ibm.com
-aneesh
More information about the Linuxppc-dev
mailing list