From 6537264402a9596947c6b80bacd269cd23ae2b3a Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Thu, 3 Aug 2017 12:30:07 -0700 Subject: [PATCH] 3.18-stable patches added patches: revert-powerpc-numa-fix-percpu-allocations-to-be-numa-aware.patch --- ...-percpu-allocations-to-be-numa-aware.patch | 85 +++++++++++++++++++ queue-3.18/series | 1 + 2 files changed, 86 insertions(+) create mode 100644 queue-3.18/revert-powerpc-numa-fix-percpu-allocations-to-be-numa-aware.patch diff --git a/queue-3.18/revert-powerpc-numa-fix-percpu-allocations-to-be-numa-aware.patch b/queue-3.18/revert-powerpc-numa-fix-percpu-allocations-to-be-numa-aware.patch new file mode 100644 index 00000000000..030d8e98f2c --- /dev/null +++ b/queue-3.18/revert-powerpc-numa-fix-percpu-allocations-to-be-numa-aware.patch @@ -0,0 +1,85 @@ +From 2c12a32c20594139ddc5aa11245fd7cbe00a61b7 Mon Sep 17 00:00:00 2001 +From: Greg Kroah-Hartman +Date: Thu, 3 Aug 2017 12:26:04 -0700 +Subject: Revert "powerpc/numa: Fix percpu allocations to be NUMA aware" + +From: Greg Kroah-Hartman + +This reverts commit 138bb14846a5856747694ae9ef565c9eb4533a1e which is +commit ba4a648f12f4cd0a8003dd229b6ca8a53348ee4b upstream. + +Michal Hocko writes: + +JFYI. We have encountered a regression after applying this patch on a +large ppc machine. While the patch is the right thing to do it doesn't +work well with the current vmalloc area size on ppc and large machines +where NUMA nodes are very far from each other. Just for the reference +the boot fails on such a machine with bunch of warning preceeding it. +See http://lkml.kernel.org/r/20170724134240.GL25221@dhcp22.suse.cz + +It seems the right thing to do is to enlarge the vmalloc space on ppc +but this is not the case in the upstream kernel yet AFAIK. It is also +questionable whether that is a stable material but I will decision on +you here. + +We have reverted this patch from our 4.4 based kernel. + +Newer kernels do not have enlarged vmalloc space yet AFAIK so they won't +work properly eiter. This bug is quite rare though because you need a +specific HW configuration to trigger the issue - namely NUMA nodes have +to be far away from each other in the physical memory space. + +Cc: Michal Hocko +Cc: Michael Ellerman +Cc: Nicholas Piggin +Signed-off-by: Greg Kroah-Hartman +--- + arch/powerpc/include/asm/topology.h | 14 -------------- + arch/powerpc/kernel/setup_64.c | 4 ++-- + 2 files changed, 2 insertions(+), 16 deletions(-) + +--- a/arch/powerpc/include/asm/topology.h ++++ b/arch/powerpc/include/asm/topology.h +@@ -44,22 +44,8 @@ extern void __init dump_numa_cpu_topolog + extern int sysfs_add_device_to_node(struct device *dev, int nid); + extern void sysfs_remove_device_from_node(struct device *dev, int nid); + +-static inline int early_cpu_to_node(int cpu) +-{ +- int nid; +- +- nid = numa_cpu_lookup_table[cpu]; +- +- /* +- * Fall back to node 0 if nid is unset (it should be, except bugs). +- * This allows callers to safely do NODE_DATA(early_cpu_to_node(cpu)). +- */ +- return (nid < 0) ? 0 : nid; +-} + #else + +-static inline int early_cpu_to_node(int cpu) { return 0; } +- + static inline void dump_numa_cpu_topology(void) {} + + static inline int sysfs_add_device_to_node(struct device *dev, int nid) +--- a/arch/powerpc/kernel/setup_64.c ++++ b/arch/powerpc/kernel/setup_64.c +@@ -754,7 +754,7 @@ void ppc64_boot_msg(unsigned int src, co + + static void * __init pcpu_fc_alloc(unsigned int cpu, size_t size, size_t align) + { +- return __alloc_bootmem_node(NODE_DATA(early_cpu_to_node(cpu)), size, align, ++ return __alloc_bootmem_node(NODE_DATA(cpu_to_node(cpu)), size, align, + __pa(MAX_DMA_ADDRESS)); + } + +@@ -765,7 +765,7 @@ static void __init pcpu_fc_free(void *pt + + static int pcpu_cpu_distance(unsigned int from, unsigned int to) + { +- if (early_cpu_to_node(from) == early_cpu_to_node(to)) ++ if (cpu_to_node(from) == cpu_to_node(to)) + return LOCAL_DISTANCE; + else + return REMOTE_DISTANCE; diff --git a/queue-3.18/series b/queue-3.18/series index 94d41f51cb1..f7cba9ffa0f 100644 --- a/queue-3.18/series +++ b/queue-3.18/series @@ -7,3 +7,4 @@ drm-vmwgfx-fix-gcc-7.1.1-warning.patch kvm-ppc-book3s-hv-restore-critical-sprs-to-host-values-on-guest-exit.patch kvm-ppc-book3s-hv-reload-htm-registers-explicitly.patch kvm-ppc-book3s-hv-save-restore-host-values-of-debug-registers.patch +revert-powerpc-numa-fix-percpu-allocations-to-be-numa-aware.patch -- 2.47.3