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 <khand...@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.t...@linux.vnet.ibm.com -aneesh