KVM: PPC: Book3S HV: Stop using vc->dpdes for nested KVM guests
authorGautam Menghani <gautam@linux.ibm.com>
Sat, 9 Nov 2024 06:32:56 +0000 (12:02 +0530)
committerMichael Ellerman <mpe@ellerman.id.au>
Thu, 14 Nov 2024 02:04:23 +0000 (13:04 +1100)
commit0d3c6b28896f9889c8864dab469e0343a0ad1c0c
treec11c7a634a22a454d7c52980c3cb2af3f178b5a9
parented351c57432122c4499be4f4aee8711d6fa93f3b
KVM: PPC: Book3S HV: Stop using vc->dpdes for nested KVM guests

commit 6398326b9ba1 ("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: 6398326b9ba1 ("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
arch/powerpc/kvm/book3s_hv.c
arch/powerpc/kvm/book3s_hv_nested.c