Alex, On 5/7/2019 8:16 AM, Graf, Alexander wrote: > [CAUTION: External Email] > > On 03.05.19 15:38, Suthikulpanit, Suravee wrote: >> AVIC doorbell is used to notify a running vCPU that interrupts >> has been injected into the vCPU AVIC backing page. Current logic >> checks only if a VCPU is running before sending a doorbell. >> However, the doorbell is not necessary if the destination >> CPU is itself. >> >> Add logic to check currently running CPU before sending doorbell. >> >> Signed-off-by: Suravee Suthikulpanit <suravee.suthikulpanit@xxxxxxx> > > Reviewed-by: Alexander Graf <graf@xxxxxxxxxx> Thanks. >> --- >> arch/x86/kvm/svm.c | 11 +++++++---- >> 1 file changed, 7 insertions(+), 4 deletions(-) >> >> diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c >> index 122788f..4bbf6fc 100644 >> --- a/arch/x86/kvm/svm.c >> +++ b/arch/x86/kvm/svm.c >> @@ -5283,10 +5283,13 @@ static void svm_deliver_avic_intr(struct kvm_vcpu *vcpu, int vec) >> kvm_lapic_set_irr(vec, vcpu->arch.apic); >> smp_mb__after_atomic(); >> >> - if (avic_vcpu_is_running(vcpu)) >> - wrmsrl(SVM_AVIC_DOORBELL, >> - kvm_cpu_get_apicid(vcpu->cpu)); >> - else >> + if (avic_vcpu_is_running(vcpu)) { > + int cpuid = vcpu->cpu; >> + >> + if (cpuid != get_cpu()) > > Tiny nitpick: What would keep you from checking vcpu->cpu directly here? Nothing. Just coding style. Thanks, Suravee