linux/arch/powerpc
Gautam Menghani 6438feb933 KVM: PPC: Book3S HV: Stop using vc->dpdes for nested KVM guests
[ Upstream commit 0d3c6b2889 ]

commit 6398326b9b ("KVM: PPC: Book3S HV P9: Stop using vc->dpdes")
introduced an optimization to use only vcpu->doorbell_request for SMT
emulation for Power9 and above guests, but the code for nested guests
still relies on the old way of handling doorbells, due to which an L2
guest (see [1]) cannot be booted with XICS with SMT>1. The command to
repro this issue is:

// To be run in L1

qemu-system-ppc64 \
	-drive file=rhel.qcow2,format=qcow2 \
	-m 20G \
	-smp 8,cores=1,threads=8 \
	-cpu  host \
	-nographic \
	-machine pseries,ic-mode=xics -accel kvm

Fix the plumbing to utilize vcpu->doorbell_request instead of vcore->dpdes
for nested KVM guests on P9 and above.

[1] Terminology
1. L0 : PowerNV linux running with HV privileges
2. L1 : Pseries KVM guest running on top of L0
2. L2 : Nested KVM guest running on top of L1

Fixes: 6398326b9b ("KVM: PPC: Book3S HV P9: Stop using vc->dpdes")
Signed-off-by: Gautam Menghani <gautam@linux.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://patch.msgid.link/20241109063301.105289-3-gautam@linux.ibm.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2024-12-05 14:02:13 +01:00
..
boot xz: remove XZ_EXTERN and extern from functions 2024-09-01 20:43:27 -07:00
configs ALong with the usual shower of singleton patches, notable patch series in 2024-09-21 07:29:05 -07:00
crypto move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
include powerpc/fadump: allocate memory for additional parameters early 2024-12-05 14:02:11 +01:00
kernel fadump: reserve param area if below boot_mem_top 2024-12-05 14:02:12 +01:00
kexec powerpc updates for 6.11 2024-07-19 21:00:33 -07:00
kvm KVM: PPC: Book3S HV: Stop using vc->dpdes for nested KVM guests 2024-12-05 14:02:13 +01:00
lib powerpc/vdso32: Fix use of crtsavres for PPC64 2024-09-20 19:06:19 +10:00
math-emu powerpc/math-emu: Inhibit W=1 warnings 2022-09-08 11:11:18 +10:00
mm powerpc/mm/fault: Fix kfence page fault reporting 2024-12-05 14:02:05 +01:00
net powerpc updates for 6.11 2024-07-19 21:00:33 -07:00
perf powerpc/perf: Set cpumode flags using sample address 2024-06-17 22:47:16 +10:00
platforms powerpc/pseries: Fix dtl_access_lock to be a rw_semaphore 2024-12-05 14:02:06 +01:00
purgatory Makefile: remove redundant tool coverage variables 2024-05-14 23:35:48 +09:00
sysdev powerpc: Switch back to struct platform_driver::remove() 2024-09-10 11:27:40 +10:00
tools powerpc/tools: Pass -mabi=elfv2 to gcc-check-mprofile-kernel.sh 2023-10-20 17:46:33 +11:00
xmon powerpc/xmon: Fix tmpstr length check in scanhex 2024-08-27 17:10:55 +10:00
Kbuild powerpc: Fix fatal warnings flag for LLVM's integrated assembler 2024-04-08 16:06:41 +10:00
Kconfig crash, powerpc: default to CRASH_DUMP=n on PPC_BOOK3S_32 2024-11-14 22:43:48 -08:00
Kconfig.debug powerpc/64s: Remove the "fast endian switch" syscall 2024-09-05 22:30:05 +10:00
Makefile powerpc: Remove 40x from Kconfig and defconfig 2024-06-28 22:28:47 +10:00
Makefile.postlink kbuild: remove ARCH_POSTLINK from module builds 2023-10-28 21:10:08 +09:00