Plumb "force_immediate_exit" into the kvm_entry() tracepoint, as suggested by Maxim, and then follow that up with cleanups that are made possible by having force_immediate_exit made available to .vcpu_run(), e.g. VMX can use the on-stack param instead of what is effectively a temporary field in vcpu_vmx. Sean Christopherson (6): KVM: x86: Plumb "force_immediate_exit" into kvm_entry() tracepoint KVM: VMX: Re-enter guest in fastpath for "spurious" preemption timer exits KVM: VMX: Handle forced exit due to preemption timer in fastpath KVM: x86: Move handling of is_guest_mode() into fastpath exit handlers KVM: VMX: Handle KVM-induced preemption timer exits in fastpath for L2 KVM: x86: Fully defer to vendor code to decide how to force immediate exit arch/x86/include/asm/kvm-x86-ops.h | 1 - arch/x86/include/asm/kvm_host.h | 6 +-- arch/x86/kvm/svm/svm.c | 18 ++++--- arch/x86/kvm/trace.h | 9 ++-- arch/x86/kvm/vmx/vmx.c | 80 +++++++++++++++++++----------- arch/x86/kvm/vmx/vmx.h | 2 - arch/x86/kvm/x86.c | 12 +---- 7 files changed, 72 insertions(+), 56 deletions(-) base-commit: 1c6d984f523f67ecfad1083bb04c55d91977bb15 -- 2.43.0.472.g3155946c3a-goog