On 23/04/20 11:44, Wanpeng Li wrote: >>>> 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()? That should be handled by deliver_posted_interrupt with no performance penalty, if you add "vcpu != kvm_get_running_vcpu()" before it calls kvm_vcpu_trigger_posted_interrupt. Paolo