KVM: x86: Fully defer to vendor code to decide how to force immediate exit
authorSean Christopherson <seanjc@google.com>
Wed, 10 Jan 2024 01:27:05 +0000 (17:27 -0800)
committerSean Christopherson <seanjc@google.com>
Fri, 23 Feb 2024 00:22:41 +0000 (16:22 -0800)
commit0ec3d6d1f169baa7fc512ae4b78d17e7c94b7763
tree8cff49e9a62a17b432796a0cd404beb4218b2490
parent7b3d1bbf8d68d76fb21210932a5e8ed8ea80dbcc
KVM: x86: Fully defer to vendor code to decide how to force immediate exit

Now that vmx->req_immediate_exit is used only in the scope of
vmx_vcpu_run(), use force_immediate_exit to detect that KVM should usurp
the VMX preemption to force a VM-Exit and let vendor code fully handle
forcing a VM-Exit.

Opportunsitically drop __kvm_request_immediate_exit() and just have
vendor code call smp_send_reschedule() directly.  SVM already does this
when injecting an event while also trying to single-step an IRET, i.e.
it's not exactly secret knowledge that KVM uses a reschedule IPI to force
an exit.

Link: https://lore.kernel.org/r/20240110012705.506918-7-seanjc@google.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
arch/x86/include/asm/kvm-x86-ops.h
arch/x86/include/asm/kvm_host.h
arch/x86/kvm/svm/svm.c
arch/x86/kvm/vmx/vmx.c
arch/x86/kvm/vmx/vmx.h
arch/x86/kvm/x86.c