Hi, This series isn't greatly polished or well tested yet, but it's conceptually simple so I'll just get some comments. Powernv does not have any real mode access limitation, and ISA3 radix does not have any SLB/TLB limitation on the kernel linear address. We also can avoid some allocations when not running as a LPAR guest.
After lifting these limits, we're in a better position to make some of our important structures node-local. At least on radix. Hash could as well, if node > 0 CPUs were to also bolt SLB corresponding with their local memory (but that's left as an exercise for the reader). Anyway, I'd be interested in comments. Thanks, Nick Nicholas Piggin (11): powerpc/powernv: powernv platform is not constrained by RMA powerpc/powernv: Remove real mode access limit for early allocations powerpc/64s/radix: Remove SLB address limit for per-cpu stacks powerpc/64s: Relax PACA address limitations powerpc/64s/radix: Do not allocate SLB shadow structures powerpc/64s: do not allocate lppaca if we are not virtualized mm: make memblock_alloc_base_nid non-static powerpc/64: Allocate PACAs node-local if possible powerpc/64s: Allocate LPPACAs node-local if possible powerpc/64: allocate per-cpu stacks node-local if possible powerpc/64s/radix: allocate kernel page tables node-local if possible arch/powerpc/include/asm/book3s/64/hash.h | 2 +- arch/powerpc/include/asm/book3s/64/radix.h | 2 +- arch/powerpc/include/asm/kvm_ppc.h | 8 +- arch/powerpc/include/asm/lppaca.h | 15 +- arch/powerpc/include/asm/paca.h | 12 +- arch/powerpc/include/asm/pmc.h | 10 +- arch/powerpc/include/asm/smp.h | 4 +- arch/powerpc/include/asm/sparsemem.h | 2 +- arch/powerpc/kernel/asm-offsets.c | 7 + arch/powerpc/kernel/crash.c | 2 +- arch/powerpc/kernel/head_64.S | 12 +- arch/powerpc/kernel/machine_kexec_64.c | 37 +++-- arch/powerpc/kernel/paca.c | 192 ++++++++++++++++-------- arch/powerpc/kernel/prom.c | 10 +- arch/powerpc/kernel/setup_64.c | 69 +++++---- arch/powerpc/kernel/smp.c | 10 +- arch/powerpc/kvm/book3s_hv.c | 21 +-- arch/powerpc/kvm/book3s_hv_builtin.c | 2 +- arch/powerpc/kvm/book3s_hv_interrupts.S | 3 +- arch/powerpc/kvm/book3s_hv_rmhandlers.S | 5 +- arch/powerpc/mm/hash_utils_64.c | 26 ++-- arch/powerpc/mm/mem.c | 4 +- arch/powerpc/mm/numa.c | 13 +- arch/powerpc/mm/pgtable-book3s64.c | 6 +- arch/powerpc/mm/pgtable-radix.c | 210 +++++++++++++++++---------- arch/powerpc/platforms/85xx/smp.c | 8 +- arch/powerpc/platforms/cell/smp.c | 4 +- arch/powerpc/platforms/powernv/idle.c | 13 +- arch/powerpc/platforms/powernv/opal.c | 7 +- arch/powerpc/platforms/powernv/setup.c | 4 +- arch/powerpc/platforms/powernv/smp.c | 2 +- arch/powerpc/platforms/powernv/subcore.c | 2 +- arch/powerpc/platforms/pseries/hotplug-cpu.c | 2 +- arch/powerpc/platforms/pseries/lpar.c | 4 +- arch/powerpc/platforms/pseries/setup.c | 2 +- arch/powerpc/platforms/pseries/smp.c | 4 +- arch/powerpc/sysdev/xics/icp-native.c | 2 +- arch/powerpc/xmon/xmon.c | 2 +- include/linux/memblock.h | 5 +- mm/memblock.c | 2 +- 40 files changed, 465 insertions(+), 282 deletions(-) -- 2.11.0