Re: [PATCH v2 1/5] KVM: LAPIC: Introduce interrupt delivery fastpath

From: Wanpeng Li
Date: Thu Apr 23 2020 - 05:45:12 EST


On Thu, 23 Apr 2020 at 17:41, Paolo Bonzini <pbonzini@xxxxxxxxxx> wrote:
>
> On 23/04/20 11:35, Wanpeng Li wrote:
> >> Ok, got it now. The problem is that deliver_posted_interrupt goes through
> >>
> >> if (!kvm_vcpu_trigger_posted_interrupt(vcpu, false))
> >> kvm_vcpu_kick(vcpu);
> >>
> >> Would it help to make the above
> >>
> >> if (vcpu != kvm_get_running_vcpu() &&
> >> !kvm_vcpu_trigger_posted_interrupt(vcpu, false))
> >> kvm_vcpu_kick(vcpu);
> >>
> >> ? If that is enough for the APICv case, it's good enough.
> > We will not exit from vmx_vcpu_run to vcpu_enter_guest, so it will not
> > help, right?
>
> Oh indeed---the call to sync_pir_to_irr is in vcpu_enter_guest. You can
> add it to patch 3 right before "goto cont_run", since AMD does not need it.

Just move kvm_x86_ops.sync_pir_to_irr(vcpu)? How about the set pir/on
part for APICv and non-APICv part in fast_deliver_interrupt()?

Wanpeng