linux-stable/arch/powerpc/platforms/pseries
Nathan Fontenot 1b4283ff5c powerpc/pseries: Perform full re-add of CPU for topology update post-migration
[ Upstream commit 81b6132492 ]

On pseries systems, performing a partition migration can result in
altering the nodes a CPU is assigned to on the destination system. For
exampl, pre-migration on the source system CPUs are in node 1 and 3,
post-migration on the destination system CPUs are in nodes 2 and 3.

Handling the node change for a CPU can cause corruption in the slab
cache if we hit a timing where a CPUs node is changed while cache_reap()
is invoked. The corruption occurs because the slab cache code appears
to rely on the CPU and slab cache pages being on the same node.

The current dynamic updating of a CPUs node done in arch/powerpc/mm/numa.c
does not prevent us from hitting this scenario.

Changing the device tree property update notification handler that
recognizes an affinity change for a CPU to do a full DLPAR remove and
add of the CPU instead of dynamically changing its node resolves this
issue.

Signed-off-by: Nathan Fontenot <nfont@linux.vnet.ibm.com>
Signed-off-by: Michael W. Bringmann <mwb@linux.vnet.ibm.com>
Tested-by: Michael W. Bringmann <mwb@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2019-04-05 22:31:37 +02:00
..
cmm.c
dlpar.c powerpc/pseries: add of_node_put() in dlpar_detach_node() 2019-02-12 19:45:57 +01:00
dtl.c
eeh_pseries.c powerpc/eeh: Remove unnecessary config_addr from eeh_dev 2017-08-31 14:26:09 +10:00
event_sources.c powerpc: Convert to using %pOF instead of full_name 2017-08-23 22:27:04 +10:00
firmware.c
hotplug-cpu.c powerpc/pseries: Perform full re-add of CPU for topology update post-migration 2019-04-05 22:31:37 +02:00
hotplug-memory.c powerpc/fadump: Do not allow hot-remove memory from fadump reserved area. 2019-02-12 19:46:07 +01:00
hvCall.S powerpc/asm: Convert .llong directives to .8byte 2017-08-31 14:26:47 +10:00
hvCall_inst.c
hvconsole.c
hvcserver.c
ibmebus.c powerpc: Convert to using %pOF instead of full_name 2017-08-23 22:27:04 +10:00
io_event_irq.c
iommu.c powerpc: Convert to using %pOF instead of full_name 2017-08-23 22:27:04 +10:00
Kconfig License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
kexec.c powerpc/xive: guest exploitation of the XIVE interrupt controller 2017-09-02 21:02:35 +10:00
lpar.c powerpc/64: Call H_REGISTER_PROC_TBL when running as a HPT guest on POWER9 2018-04-24 09:36:27 +02:00
lparcfg.c
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
mobility.c powerpc/rfi-flush: Call setup_rfi_flush() after LPM migration 2018-05-30 07:51:51 +02:00
msi.c powerpc/pci: Remove OF node back pointer from pci_dn 2017-08-31 14:26:12 +10:00
nvram.c
of_helpers.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
of_helpers.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
offline_states.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
pci.c
pci_dlpar.c powerpc: Convert to using %pOF instead of full_name 2017-08-23 22:27:04 +10:00
power.c
pseries.h powerpc/rfi-flush: Call setup_rfi_flush() after LPM migration 2018-05-30 07:51:51 +02:00
pseries_energy.c powerpc/pseries: Don't print failure message in energy driver 2017-08-10 22:30:29 +10:00
ras.c powerpc/pseries: Avoid using the size greater than RTAS_ERROR_LOG_MAX. 2018-09-15 09:45:32 +02:00
reconfig.c Merge branch 'fixes' into next 2017-08-23 22:20:10 +10:00
rng.c
scanlog.c
setup.c powerpc/pseries: Query hypervisor for count cache flush settings 2019-04-03 06:25:13 +02:00
smp.c powerpc/xive: guest exploitation of the XIVE interrupt controller 2017-09-02 21:02:35 +10:00
suspend.c mm: treewide: remove GFP_TEMPORARY allocation flag 2017-09-13 18:53:16 -07:00
vio.c powerpc/pseries/vio: Dispose of virq mapping on vdevice unregister 2017-12-20 10:10:25 +01:00