On 18/02/2016 15:18, Radim Krčmář wrote: > KVM just has to make sure that targeted VCPUs notice the interrupt, > which means to kick (wake up) VCPUs that don't have IsRunning set. > There is no need to do anything with running VCPUs, because they > - are in guest mode and noticed the doorbell > - are in host mode, where they will > 1) VMRUN as fast as they can because the VCPU didn't want to halt > (and IRR is handled on VMRUN) > 2) check IRR after unsetting IsRunning and goto (1) if there are > pending interrupts. (RFC doesn't do this, which is another bug) This is not necessary. IsRunning is only cleared at vcpu_put time. The next KVM_RUN will look at IRR (kvm_arch_vcpu_runnable), if necessary set the mp_state to KVM_MP_STATE_RUNNABLE, and do the VMRUN. But I agree that this is what Suravee is missing. > It's still possible that we misunderstood the spec. Does AVIC handle > IPIs differently? I don't think we misunderstood it. Well, I did, but that's fixed now. :) Paolo -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html