Thread (141 messages) 141 messages, 6 authors, 2021-12-02

Re: [PATCH v2 35/43] KVM: SVM: Signal AVIC doorbell iff vCPU is in guest mode

From: Paolo Bonzini <pbonzini@redhat.com>
Date: 2021-10-25 14:26:39
Also in: kvm, kvm-riscv, kvmarm, linux-arm-kernel, linux-riscv, lkml

On 09/10/21 04:12, Sean Christopherson wrote:
quoted hunk ↗ jump to hunk
+	 */
+	if (vcpu->mode == IN_GUEST_MODE) {
  		int cpu = READ_ONCE(vcpu->cpu);
  
  		/*
@@ -687,8 +692,13 @@ int svm_deliver_avic_intr(struct kvm_vcpu *vcpu, int vec)
  		if (cpu != get_cpu())
  			wrmsrl(SVM_AVIC_DOORBELL, kvm_cpu_get_apicid(cpu));
  		put_cpu();
-	} else
+	} else {
+		/*
+		 * Wake the vCPU if it was blocking.  KVM will then detect the
+		 * pending IRQ when checking if the vCPU has a wake event.
+		 */
  		kvm_vcpu_wake_up(vcpu);
+	}
  
Does this still need to check the "running" flag?  That should be a 
strict superset of vcpu->mode == IN_GUEST_MODE.

Paolo
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help