powerpc/pseries: Fix cpu hotplug crash with memoryless nodes
authorMichael Bringmann <mwb@linux.vnet.ibm.com>
Tue, 28 Nov 2017 22:58:43 +0000 (16:58 -0600)
committerMichael Ellerman <mpe@ellerman.id.au>
Sat, 27 Jan 2018 09:59:45 +0000 (20:59 +1100)
commite67e02a544e9a0d24b99eb383e808bb3433b048d
tree25273be02407c4cc3748b61c1d9f837eab407e55
parentea05ba7c559c8e5a5946c3a94a2a266e9a6680a6
powerpc/pseries: Fix cpu hotplug crash with memoryless nodes

On powerpc systems with shared configurations of CPUs and memory and
memoryless nodes at boot, an event ordering problem was observed on a
SLES12 build platforms with the hot-add of CPUs to the memoryless
nodes.

* The most common error occurred when the memory SLAB driver attempted
  to reference the memoryless node to which a CPU was being added
  before the kernel had finished initializing all of the data
  structures for the CPU and exited 'device_online' under
  DLPAR/hot-add.

  Normally the memoryless node would be initialized through the call
  path device_online ... arch_update_cpu_topology ... find_cpu_nid ...
  try_online_node. This patch ensures that the powerpc node will be
  initialized as early as possible, even if it was memoryless and
  CPU-less at the point when we are trying to hot-add a new CPU to it.

Signed-off-by: Michael Bringmann <mwb@linux.vnet.ibm.com>
Reviewed-by: Nathan Fontenot <nfont@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/mm/numa.c
arch/powerpc/platforms/pseries/hotplug-cpu.c