linux/arch/powerpc/mm
Nathan Fontenot 81b6132492 powerpc/pseries: Perform full re-add of CPU for topology update post-migration
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>
2019-01-30 23:28:56 +11:00
..
8xx_mmu.c powerpc/8xx: use modify_instruction_site() 2018-12-19 18:56:32 +11:00
40x_mmu.c
44x_mmu.c powerpc/44x: use patch_sites for TLB handlers patching 2018-12-19 18:56:32 +11:00
copro_fault.c
dma-noncoherent.c powerpc/dma: split the two __dma_alloc_coherent implementations 2018-12-20 22:21:20 +11:00
drmem.c
dump_bats.c powerpc/mm: dump block address translation on book3s/32 2018-12-04 19:46:49 +11:00
dump_hashpagetable.c
dump_linuxpagetables-8xx.c
dump_linuxpagetables-book3s64.c
dump_linuxpagetables-generic.c powerpc/mm: add exec protection on powerpc 603 2018-12-19 18:56:32 +11:00
dump_linuxpagetables.c
dump_linuxpagetables.h
dump_sr.c powerpc/mm: dump segment registers on book3s/32 2018-12-04 19:45:54 +11:00
fault.c Remove 'type' argument from access_ok() function 2019-01-03 18:57:57 -08:00
fsl_booke_mmu.c
hash64_4k.c
hash64_64k.c
hash_low_32.S powerpc/book3s/32: Use patch_site to patch hash functions 2018-12-19 18:56:32 +11:00
hash_native_64.c
hash_utils_64.c powerpc/mm: Fix debugfs_simple_attr.cocci warnings 2019-01-14 20:39:27 +11:00
highmem.c
hugepage-hash64.c
hugetlbpage-book3e.c
hugetlbpage-hash64.c
hugetlbpage-radix.c
hugetlbpage.c powerpc updates for 4.21 2018-12-27 10:43:24 -08:00
init-common.c powerpc/mm: remove unnecessary test in pgtable_cache_init() 2018-12-04 19:45:01 +11:00
init_32.c
init_64.c powerpc/mm: Fallback to RAM if the altmap is unusable 2018-12-09 21:33:21 +11:00
Makefile powerpc/mm: dump block address translation on book3s/32 2018-12-04 19:46:49 +11:00
mem.c mm, memory_hotplug: add nid parameter to arch_remove_memory 2018-12-28 12:11:49 -08:00
mmap.c
mmu_context.c powerpc/mm: Extend pte_fragment functionality to PPC32 2018-12-04 19:45:01 +11:00
mmu_context_book3s64.c
mmu_context_hash32.c
mmu_context_iommu.c powerpc/vfio/iommu/kvm: Do not pin device memory 2018-12-21 16:20:46 +11:00
mmu_context_nohash.c powerpc/mm: define an empty slice_init_new_context_exec() 2018-12-19 18:56:32 +11:00
mmu_decl.h
numa.c powerpc/pseries: Perform full re-add of CPU for topology update post-migration 2019-01-30 23:28:56 +11:00
pgtable-book3e.c
pgtable-book3s64.c powerpc/mm: Avoid useless lock with single page fragments 2018-12-04 19:45:01 +11:00
pgtable-frag.c mm: treewide: remove unused address argument from pte_alloc functions 2019-01-04 13:13:47 -08:00
pgtable-hash64.c
pgtable-radix.c
pgtable.c powerpc/mm: add exec protection on powerpc 603 2018-12-19 18:56:32 +11:00
pgtable_32.c mm: treewide: remove unused address argument from pte_alloc functions 2019-01-04 13:13:47 -08:00
pgtable_64.c
pkeys.c powerpc/pkeys: Fix handling of pkey state across fork() 2018-12-21 14:46:50 +11:00
ppc_mmu_32.c powerpc/book3s/32: fix number of bats in p/v_block_mapped() 2018-12-19 18:56:32 +11:00
slb.c
slice.c
subpage-prot.c Remove 'type' argument from access_ok() function 2019-01-03 18:57:57 -08:00
tlb-radix.c
tlb_hash32.c
tlb_hash64.c
tlb_low_64e.S powerpc/fsl: Flush the branch predictor at each kernel entry (64bit) 2018-12-20 22:59:03 +11:00
tlb_nohash.c powerpc: remove unnecessary unlikely() 2019-01-15 11:38:05 +11:00
tlb_nohash_low.S
vphn.c
vphn.h