On 29/03/19 16:32, Liran Alon wrote: > Paolo I am not sure this is the case here. Please read my other > replies in this email thread. > > I think this is just a standard issue of a level-triggered interrupt > handler in L1 (Hyper-V) that performs EOI before it lowers the > irq-line. I don’t think vector 96 is even related to the issue at > hand here. This is why after it was already handled, the loop of > EXTERNAL_INTERRUPT happens on vector 80 and not vector 96. Hmm... Vitaly, what machine were you testing on---does it have APIC-v? If not, then you should have seen either an EOI for irq 96 or a TPR below threshold vmexit. However, if it has APIC-v then you wouldn't have seen any of this (you only see the EOI for irq 80 because it's level triggered) and Liran is probably right. Paolo > In addition, there is a missing optimisation from Hyper-V that after > it handles an EXTERNAL_INTERRUPT exit, it doesn’t enable interrupts > to receive other pending host interrupts (In our case, the pending > vector 80) and will therefore only receive it once it enters back to > L2 which will cause another EXTERNAL_INTERRUPT exit but this time on > vector 80.