Re: [PATCH 2/3] KVM: nVMX: Fix fail to get nested ack intr's vector during nested vmexit

Paolo Bonzini
2014-07-17T10:43:43Z

Il 17/07/2014 12:01, Wanpeng Li ha scritto:
> That is my original proposal solution of this bug. However, what I concern
> after more think is since kvm_lapic_find_highest_irr will not clear
> irr, if the intr will be injected by kvm_86_ops->hwapic_irr_update(vcpu,
> kvm_lapic_find_highest_irr(vcpu)) which called by vcpu_enter_guest() again?
>
> Any idea, Paolo?

The processor should do that when it does the virtual interrupt
delivery. It will do (29.2.2):

Vector := RVI;
VISR[Vector] := 1;
SVI := Vector;
VIRR[Vector] := 0;
If VIRR not empty
then RVI := highest index of bit set in VIRR
else RVI := 0
Fi;
deliver interrupt with Vector through IDT;

Please post a patch, so we can reason on it better.

Paolo