Messages in this thread | | | Subject | Re: [PART1 RFC 5/9] svm: Add VMEXIT handlers for AVIC | From | Paolo Bonzini <> | Date | Thu, 18 Feb 2016 15:51:14 +0100 |
| |
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
| |