linux_dsm_epyc7002/arch/powerpc/kernel
Srikar Dronamraju bf6476152a powerpc/smp: Reintroduce cpu_core_mask
[ Upstream commit c47f892d7aa62765bf0689073f75990b4517a4cf ]

Daniel reported that with Commit 4ca234a9cb ("powerpc/smp: Stop
updating cpu_core_mask") QEMU was unable to set single NUMA node SMP
topologies such as:
 -smp 8,maxcpus=8,cores=2,threads=2,sockets=2
 i.e he expected 2 sockets in one NUMA node.

The above commit helped to reduce boot time on Large Systems for
example 4096 vCPU single socket QEMU instance. PAPR is silent on
having more than one socket within a NUMA node.

cpu_core_mask and cpu_cpu_mask for any CPU would be same unless the
number of sockets is different from the number of NUMA nodes.

One option is to reintroduce cpu_core_mask but use a slightly
different method to arrive at the cpu_core_mask. Previously each CPU's
chip-id would be compared with all other CPU's chip-id to verify if
both the CPUs were related at the chip level. Now if a CPU 'A' is
found related / (unrelated) to another CPU 'B', all the thread
siblings of 'A' and thread siblings of 'B' are automatically marked as
related / (unrelated).

Also if a platform doesn't support ibm,chip-id property, i.e its
cpu_to_chip_id returns -1, cpu_core_map holds a copy of
cpu_cpu_mask().

Fixes: 4ca234a9cb ("powerpc/smp: Stop updating cpu_core_mask")
Reported-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Signed-off-by: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
Tested-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20210415120934.232271-2-srikar@linux.vnet.ibm.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-05-14 09:50:39 +02:00
..
ptrace powerpc/watchpoint/ptrace: Introduce PPC_DEBUG_FEATURE_DATA_BP_ARCH_31 2020-09-15 22:13:20 +10:00
syscalls mm/madvise: introduce process_madvise() syscall: an external memory hinting API 2020-10-18 09:27:10 -07:00
trace powerpc: Add a ppc_inst_as_str() helper 2020-07-23 17:41:36 +10:00
vdso32 Kbuild updates for v5.10 2020-10-22 13:13:57 -07:00
vdso64 powerpc/64/signal: Fix regression in __kernel_sigtramp_rt64() semantics 2021-02-13 13:55:02 +01:00
.gitignore
align.c powerpc: Use fallthrough pseudo-keyword 2020-07-29 21:09:37 +10:00
asm-offsets.c powerpc/64: Fix stack trace not displaying final frame 2021-03-17 17:06:24 +01:00
audit.c
btext.c treewide: Convert macro and uses of __section(foo) to __section("foo") 2020-10-25 14:51:49 -07:00
cacheinfo.c powerpc/cacheinfo: Warn if cache object chain becomes unordered 2020-07-30 22:53:48 +10:00
cacheinfo.h
compat_audit.c
cpu_setup_6xx.S
cpu_setup_44x.S
cpu_setup_fsl_booke.S
cpu_setup_pa6t.S
cpu_setup_power.S powerpc/perf: Initialize power10 PMU registers in cpu setup routine 2020-07-26 23:34:23 +10:00
cpu_setup_ppc970.S
cputable.c powerpc/64s: Remove TM from Power10 features 2020-10-20 23:33:51 +11:00
crash_dump.c
dawr.c powerpc/watchpoint: Guest support for 2nd DAWR hcall 2020-07-26 23:34:19 +10:00
dbell.c powerpc: Inline doorbell sending functions 2020-07-29 21:02:09 +10:00
dma-iommu.c dma-mapping: add a new dma_alloc_pages API 2020-09-25 06:20:47 +02:00
dma-mask.c
dma-swiotlb.c
dt_cpu_ftrs.c powerpc: untangle cputable mce include 2020-10-06 23:22:22 +11:00
early_32.c
eeh_cache.c powerpc/eeh_cache: Fix a possible debugfs deadlock 2020-11-02 12:54:20 +11:00
eeh_driver.c pci-v5.9-changes 2020-08-07 18:48:15 -07:00
eeh_event.c
eeh_pe.c powerpc/eeh: Delete eeh_pe->config_addr 2020-10-07 22:34:47 +11:00
eeh_sysfs.c powerpc/eeh: Pass eeh_dev to eeh_ops->resume_notify() 2020-07-26 23:34:20 +10:00
eeh.c powerpc/eeh: Fix EEH handling for hugepages in ioremap space. 2021-05-11 14:47:35 +02:00
entry_32.S powerpc/32s: Add missing call to kuep_lock on syscall entry 2021-03-04 11:38:40 +01:00
entry_64.S powerpc/64s: fix scv entry fallback flush vs interrupt 2021-01-27 11:55:12 +01:00
epapr_hcalls.S
epapr_paravirt.c
exceptions-64e.S powerpc/64e: remove 64s specific interrupt soft-mask code 2020-10-06 23:22:23 +11:00
exceptions-64s.S powerpc/64s/exception: Clean up a missed SRR specifier 2021-03-17 17:06:34 +01:00
fadump.c powerpc/fadump: Mark fadump_calculate_reserve_size as __init 2021-05-14 09:50:30 +02:00
firmware.c powerpc/pseries: Add KVM guest doorbell restrictions 2020-07-29 21:02:10 +10:00
fpu.S powerpc: Drop SYNC_601() ISYNC_601() and SYNC() 2020-10-08 21:17:13 +11:00
fsl_booke_entry_mapping.S
head_8xx.S powerpc/8xx: Fix software emulation interrupt 2021-03-04 11:38:05 +01:00
head_32.h powerpc/32: Preserve cr1 in exception prolog stack check to fix build error 2021-03-04 11:38:39 +01:00
head_40x.S powerpc/40x: Always fault when _PAGE_ACCESSED is not set 2020-11-05 23:34:16 +11:00
head_44x.S mm: reorder includes after introduction of linux/pgtable.h 2020-06-09 09:39:13 -07:00
head_64.S powerpc/64: Fix an EMIT_BUG_ENTRY in head_64.S 2020-12-30 11:53:32 +01:00
head_book3s_32.S powerpc/603: Fix protection of user pages mapped with PROT_NONE 2021-03-17 17:06:13 +01:00
head_booke.h powerpc: Remove SYNC on non 6xx 2020-10-08 21:17:12 +11:00
head_fsl_booke.S mm: reorder includes after introduction of linux/pgtable.h 2020-06-09 09:39:13 -07:00
hw_breakpoint_constraints.c powerpc/watchpoint: Move DAWR detection logic outside of hw_breakpoint.c 2020-09-15 22:13:19 +10:00
hw_breakpoint.c powerpc/watchpoint: Move DAWR detection logic outside of hw_breakpoint.c 2020-09-15 22:13:19 +10:00
idle_6xx.S
idle_book3e.S
idle_book3s.S
idle_e500.S
idle.c sched/idle: Fix arch_cpu_idle() vs tracing 2020-11-24 16:47:35 +01:00
ima_arch.c
io-workarounds.c mm: reorder includes after introduction of linux/pgtable.h 2020-06-09 09:39:13 -07:00
io.c
iomap.c iomap: constify ioreadX() iomem argument (as in generic implementation) 2020-08-14 19:56:57 -07:00
iommu.c dma-mapping: introduce dma_get_seg_boundary_nr_pages() 2020-09-03 18:12:15 +02:00
irq.c powerpc/kuap: Restore AMR after replaying soft interrupts 2021-03-04 11:38:06 +01:00
isa-bridge.c
jump_label.c
kgdb.c maccess: make get_kernel_nofault() check for minimal type compatibility 2020-06-18 12:10:37 -07:00
kprobes-ftrace.c
kprobes.c powerpc: kprobes: Use generic kretprobe trampoline handler 2020-09-08 11:52:34 +02:00
kvm_emul.S
kvm.c
l2cr_6xx.S powerpc: Drop SYNC_601() ISYNC_601() and SYNC() 2020-10-08 21:17:13 +11:00
legacy_serial.c
Makefile powerpc: Avoid broken GCC __attribute__((optimize)) 2020-12-30 11:53:15 +01:00
mce_power.c powerpc/powernv: Machine check handler for POWER10 2020-07-23 17:43:30 +10:00
mce.c powerpc/mce: Avoid nmi_enter/exit in real mode on pseries hash 2020-10-16 20:13:55 +11:00
misc_32.S powerpc: Rewrite FSL_BOOKE flush_cache_instruction() in C 2020-09-02 11:00:21 +10:00
misc_64.S powerpc: Remove SYNC on non 6xx 2020-10-08 21:17:12 +11:00
misc.S
module_32.c
module_64.c maccess: rename probe_kernel_{read,write} to copy_{from,to}_kernel_nofault 2020-06-17 10:57:41 -07:00
module.c powerpc: Use MODULES_VADDR if defined 2020-07-27 00:01:30 +10:00
msi.c
note.S
nvram_64.c
of_platform.c powerpc/eeh: Remove eeh_dev_phb_init_dynamic() 2020-07-26 23:34:19 +10:00
optprobes_head.S
optprobes.c
paca.c powerpc: Avoid broken GCC __attribute__((optimize)) 2020-12-30 11:53:15 +01:00
pci_32.c
pci_64.c
pci_dn.c powerpc/eeh: Rename eeh_{add_to|remove_from}_parent_pe() 2020-07-26 23:34:21 +10:00
pci_of_scan.c
pci-common.c powerpc/pci: Add ppc_md.discover_phbs() 2021-03-17 17:06:23 +01:00
pci-hotplug.c
pmc.c
ppc32.h
ppc_save_regs.S
proc_powerpc.c
process.c powerpc/64: Fix stack trace not displaying final frame 2021-03-17 17:06:24 +01:00
prom_init_check.sh
prom_init.c powerpc/prom: Fix "ibm,arch-vec-5-platform-support" scan 2021-03-04 11:38:35 +01:00
prom_parse.c
prom.c powerpc/prom: Mark identical_pvr_fixup as __init 2021-05-14 09:50:30 +02:00
reloc_32.S
reloc_64.S
rtas_flash.c
rtas_pci.c mm: reorder includes after introduction of linux/pgtable.h 2020-06-09 09:39:13 -07:00
rtas-proc.c
rtas-rtc.c
rtas.c powerpc/rtas: Fix typo of ibm,open-errinjct in RTAS filter 2020-12-30 11:54:15 +01:00
rtasd.c powerpc/rtasd: simplify handle_rtas_event(), emit message on events 2020-07-16 13:12:38 +10:00
secure_boot.c powerpc/pseries: Detect secure and trusted boot state of the system. 2020-07-16 14:49:53 +10:00
security.c powerpc/security: Fix link stack flush instruction 2020-10-08 12:50:52 +11:00
secvar-ops.c
secvar-sysfs.c
setup_32.c powerpc: Remove support for PowerPC 601 2020-10-08 21:17:13 +11:00
setup_64.c powerpc/powernv: Enable HAIL (HV AIL) for ISA v3.1 processors 2021-05-11 14:47:35 +02:00
setup-common.c powerpc/64: Set up a kernel stack for secondaries before cpu_restore() 2020-12-30 11:53:01 +01:00
setup.h powerpc: Avoid broken GCC __attribute__((optimize)) 2020-12-30 11:53:15 +01:00
signal_32.c powerpc/signal_32: Simplify loop in PPC64 save_general_regs() 2020-07-15 12:04:40 +10:00
signal_64.c powerpc/signal64: Don't opencode page prefaulting 2020-07-15 12:04:40 +10:00
signal.c arch-cleanup-2020-10-22 2020-10-23 10:06:38 -07:00
signal.h
smp-tbsync.c
smp.c powerpc/smp: Reintroduce cpu_core_mask 2021-05-14 09:50:39 +02:00
stacktrace.c
suspend.c
swsusp_32.S
swsusp_64.c
swsusp_asm64.S
swsusp_booke.S
swsusp.c
sys_ppc32.c
syscall_64.c powerpc: Only include kup-radix.h for 64-bit Book3S 2020-11-19 23:47:20 +11:00
syscalls.c
sysfs.c powerpc/sysfs: Remove unused 'err' variable in sysfs_create_dscr_default() 2020-09-18 20:05:24 +10:00
systbl_chk.sh
systbl.S
tau_6xx.c powerpc/tau: Disable TAU between measurements 2020-09-15 22:13:30 +10:00
time.c powerpc/time: Enable sched clock for irqtime 2021-03-04 11:38:01 +01:00
tm.S powerpc/tm: Save and restore AMR on treclaim and trechkpt 2020-10-06 23:22:25 +11:00
traps.c powerpc: improve handling of unrecoverable system reset 2021-03-17 17:06:23 +01:00
ucall.S
udbg_16550.c
udbg.c
uprobes.c
vdso.c powerpc/64/signal: Fix regression in __kernel_sigtramp_rt64() semantics 2021-02-13 13:55:02 +01:00
vecemu.c
vector.S powerpc: re-initialise lazy FPU/VEC counters on every fault 2020-07-16 13:00:24 +10:00
vmlinux.lds.S powerpc/64s: fix scv entry fallback flush vs interrupt 2021-01-27 11:55:12 +01:00
watchdog.c