On Wed, Apr 22, 2020 at 7:26 PM Sean Christopherson <sean.j.christopherson@xxxxxxxxx> wrote: > > Re-request KVM_REQ_EVENT if vcpu_enter_guest() bails after processing > pending requests and an immediate exit was requested. This fixes a bug > where a pending event, e.g. VMX preemption timer, is delayed and/or lost > if the exit was deferred due to something other than a higher priority > _injected_ event, e.g. due to a pending nested VM-Enter. This bug only > affects the !injected case as kvm_x86_ops.cancel_injection() sets > KVM_REQ_EVENT to redo the injection, but that's purely serendipitous > behavior with respect to the deferred event. > > Note, emulated preemption timer isn't the only event that can be > affected, it simply happens to be the only event where not re-requesting > KVM_REQ_EVENT is blatantly visible to the guest. > > Fixes: f4124500c2c13 ("KVM: nVMX: Fully emulate preemption timer") > Signed-off-by: Sean Christopherson <sean.j.christopherson@xxxxxxxxx> Reviewed-by: Jim Mattson <jmattson@xxxxxxxxxx>