Gleb Natapov wrote:
@@ -3174,10 +3174,11 @@ static void inject_pending_irq(struct kvm_vcpu *vcpu, 
struct kvm_run *kvm_run)
                        vcpu->arch.nmi_injected = true;
                        kvm_x86_ops->set_nmi(vcpu);
                }
-       } else if (kvm_cpu_has_interrupt(vcpu)) {
-               if (kvm_x86_ops->interrupt_allowed(vcpu)) {
-                       kvm_queue_interrupt(vcpu, kvm_cpu_get_interrupt(vcpu),
-                                           false);
+       } else if (kvm_x86_ops->interrupt_allowed(vcpu)) {
+               int vec = kvm_cpu_get_interrupt(vcpu);
+               if (vec != -1) {
+                       printk(KERN_ERR"inject %d rip=%x\n", vec, 
kvm_rip_read(vcpu));
+                       kvm_queue_interrupt(vcpu, vec, false);
                        kvm_x86_ops->set_irq(vcpu);
                }       }

Not sure if this is a win. Usually interrupts are allowed, so we'll have to do both calculations. On vmx ->interrupt_allowed() reads the vmcs, which is slow.

--
error compiling committee.c: too many arguments to function

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to