This reverts commit 53ecde0b9126ff140abe3aefd7f0ec64d6fa36b0. The commit above changed the memblock size to 1GiB, which did some nice things like create fewer TLB entries for mapping memory at the time of hotplug. The downside is that it changes the granularity at which memory can be hot-plugged and hot-unplugged. The implication is that if we had less than a 1GiB to hot-plug/hot-unplug that would not be possible.
The reason we had this fix was to resolve an issue where we did not split mappings on hot-unplug, leaving a TLB entry that spanned the region that was unplugged. This is now fixed by 4dd5f8a99e79 which splits the page table, removing the MMU mappings for the hot-unplugged region correctly. This trade-offs performance as we increase the number of TLB's to map 1GiB of memory, mapped in via hot-plug, but gives us the ability to handle smaller memory sizes. Signed-off-by: Balbir Singh <bsinghar...@gmail.com> Signed-off-by: Michael Neuling <mi...@neuling.org> --- arch/powerpc/platforms/powernv/setup.c | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/arch/powerpc/platforms/powernv/setup.c b/arch/powerpc/platforms/powernv/setup.c index ef8c9ce53a61..fa63d3fff14c 100644 --- a/arch/powerpc/platforms/powernv/setup.c +++ b/arch/powerpc/platforms/powernv/setup.c @@ -356,15 +356,7 @@ static void pnv_kexec_cpu_down(int crash_shutdown, int secondary) #ifdef CONFIG_MEMORY_HOTPLUG_SPARSE static unsigned long pnv_memory_block_size(void) { - /* - * We map the kernel linear region with 1GB large pages on radix. For - * memory hot unplug to work our memory block size must be at least - * this size. - */ - if (radix_enabled()) - return 1UL * 1024 * 1024 * 1024; - else - return 256UL * 1024 * 1024; + return 256UL * 1024 * 1024; } #endif -- 2.13.6