On Tue, Apr 28, 2020 at 11:54 AM Jim Mattson <jmattson@xxxxxxxxxx> wrote: > > On Wed, Apr 22, 2020 at 7:26 PM Sean Christopherson > <sean.j.christopherson@xxxxxxxxx> wrote: > > > > Short circuit vmx_check_nested_events() if an exception is pending and > > needs to be injected into L2, priority between coincident events is not > > dependent on exiting behavior. This fixes a bug where a single-step #DB > > that is not intercepted by L1 is incorrectly dropped due to servicing a > > VMX Preemption Timer VM-Exit. > > > > Injected exceptions also need to be blocked if nested VM-Enter is > > pending or an exception was already injected, otherwise injecting the > > exception could overwrite an existing event injection from L1. > > Technically, this scenario should be impossible, i.e. KVM shouldn't > > inject its own exception during nested VM-Enter. This will be addressed > > in a future patch. > > > > Note, event priority between SMI, NMI and INTR is incorrect for L2, e.g. > > SMI should take priority over VM-Exit on NMI/INTR, and NMI that is > > injected into L2 should take priority over VM-Exit INTR. This will also > > be addressed in a future patch. > > > > Fixes: b6b8a1451fc4 ("KVM: nVMX: Rework interception of IRQs and NMIs") > > Reported-by: Jim Mattson <jmattson@xxxxxxxxxx> > > Cc: Oliver Upton <oupton@xxxxxxxxxx> > > Cc: Peter Shier <pshier@xxxxxxxxxx> > > Signed-off-by: Sean Christopherson <sean.j.christopherson@xxxxxxxxx> > Reviewed-by: Jim Mattson <jmattson@xxxxxxxxxx> Reviewed-by: Oliver Upton <oupton@xxxxxxxxxx>