From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pg0-x236.google.com (mail-pg0-x236.google.com [IPv6:2607:f8b0:400e:c05::236]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 3zgBvk4dKJzF0nH for ; Tue, 13 Feb 2018 04:08:34 +1100 (AEDT) Received: by mail-pg0-x236.google.com with SMTP id t4so6843369pgp.8 for ; Mon, 12 Feb 2018 09:08:33 -0800 (PST) From: Nicholas Piggin To: linuxppc-dev@lists.ozlabs.org Cc: Nicholas Piggin Subject: [RFC PATCH 00/12] numa aware allocation for pacas, stacks, Date: Tue, 13 Feb 2018 03:08:10 +1000 Message-Id: <20180212170822.14612-1-npiggin@gmail.com> List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , This series allows numa aware allocations for various early data structures for radix. Hash still has a bolted SLB limitation that prevents at least pacas and stacks from node-affine allocations. Since I last posted a feeble attempt at this, I went back and tried to cover the setup / topology discovery code a bit more thoroughly. Paca allocation is deferred until quite late, and numa discover is moved slightly earlier. Still requires more testing with different platforms, BookE, pseries, etc., But it seems to work with powernv so far. Thanks, Nick Nicholas Piggin (12): powerpc/64s: do not allocate lppaca if we are not virtualized powerpc/64: Use array of paca pointers and allocate pacas individually powerpc/64s: allocate lppacas individually powerpc/64s: allocate slb_shadow structures individually mm: make memblock_alloc_base_nid non-static powerpc/mm/numa: move numa topology discovery earlier powerpc/64: move default SPR recording powerpc/setup: cpu_to_phys_id array powerpc/64: defer paca allocation until memory topology is discovered powerpc/64: allocate pacas per node 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 | 26 +-- arch/powerpc/include/asm/paca.h | 16 +- arch/powerpc/include/asm/pmc.h | 13 +- arch/powerpc/include/asm/setup.h | 1 + arch/powerpc/include/asm/smp.h | 5 +- arch/powerpc/include/asm/sparsemem.h | 2 +- arch/powerpc/kernel/asm-offsets.c | 5 + arch/powerpc/kernel/crash.c | 2 +- arch/powerpc/kernel/head_64.S | 19 ++- arch/powerpc/kernel/machine_kexec_64.c | 37 +++-- arch/powerpc/kernel/paca.c | 236 ++++++++++++++------------- arch/powerpc/kernel/prom.c | 14 +- arch/powerpc/kernel/setup-common.c | 30 +++- arch/powerpc/kernel/setup.h | 9 +- arch/powerpc/kernel/setup_64.c | 80 ++++++--- arch/powerpc/kernel/smp.c | 10 +- arch/powerpc/kernel/sysfs.c | 18 +- arch/powerpc/kvm/book3s_hv.c | 34 ++-- arch/powerpc/kvm/book3s_hv_builtin.c | 2 +- arch/powerpc/kvm/book3s_hv_interrupts.S | 3 +- arch/powerpc/kvm/book3s_hv_rmhandlers.S | 3 +- arch/powerpc/mm/hash_utils_64.c | 2 +- arch/powerpc/mm/mem.c | 9 +- arch/powerpc/mm/numa.c | 36 ++-- arch/powerpc/mm/pgtable-book3s64.c | 6 +- arch/powerpc/mm/pgtable-radix.c | 178 +++++++++++++------- arch/powerpc/mm/tlb-radix.c | 2 +- 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/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/kexec.c | 7 +- 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 +- 45 files changed, 527 insertions(+), 346 deletions(-) -- 2.16.1