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 majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html