On Thu, 2022-08-11 at 17:06 -0400, Paolo Bonzini wrote: > From: Sean Christopherson <seanjc@xxxxxxxxxx> > > Set KVM_REQ_EVENT when MTF becomes pending to ensure that KVM will run > through inject_pending_event() and thus vmx_check_nested_events() prior > to re-entering the guest. > > MTF currently works by virtue of KVM's hack that calls > kvm_check_nested_events() from kvm_vcpu_running(), but that hack will > be removed in the near future. Until that call is removed, the patch > introduces no functional change. > > Fixes: 5ef8acbdd687 ("KVM: nVMX: Emulate MTF when performing instruction emulation") > Cc: stable@xxxxxxxxxxxxxxx > Signed-off-by: Sean Christopherson <seanjc@xxxxxxxxxx> > Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> > --- > arch/x86/kvm/vmx/vmx.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c > index d7f8331d6f7e..940c0c0f8281 100644 > --- a/arch/x86/kvm/vmx/vmx.c > +++ b/arch/x86/kvm/vmx/vmx.c > @@ -1660,10 +1660,12 @@ static void vmx_update_emulated_instruction(struct kvm_vcpu *vcpu) > */ > if (nested_cpu_has_mtf(vmcs12) && > (!vcpu->arch.exception.pending || > - vcpu->arch.exception.nr == DB_VECTOR)) > + vcpu->arch.exception.nr == DB_VECTOR)) { > vmx->nested.mtf_pending = true; > - else > + kvm_make_request(KVM_REQ_EVENT, vcpu); > + } else { > vmx->nested.mtf_pending = false; > + } > } > > static int vmx_skip_emulated_instruction(struct kvm_vcpu *vcpu) Reviewed-by: Maxim Levitsky <mlevitsk@xxxxxxxxxx> Best regards, Maxim Levitsky