correctly trace irq injection on SVM.
PATCH 1/1 correctly trace irq injection on SVM.
On SVM interrupts are injected by svm_set_irq() not svm_inject_irq(). The later is used only to wait for irq window.
Signed-off-by Gleb Natapov <[email protected]>
arch/x86/kvm/svm.c +2 -2
@@ -2831,8 +2831,6 @@ static inline void svm_inject_irq(struct vcpu_svm *svm, int irq) {struct vmcb_control_area *control; -trace_kvm_inj_virq (irq); - ++svm->vcpu.stat.irq_injections; control = &svm->vmcb->control; control->int_vector = irq;
@@ -2847,6 +2845,8 @@ static void svm_set_irq(struct kvm_vcpu *vcpu)BUG_ON (!(gif_set (svm))); +trace_kvm_inj_virq (irq); + svm->vmcb->control.event_inj = vcpu->arch.interrupt.nr |SVM_EVTINJ_VALID |SVM_EVTINJ_TYPE_INTR ; }
--
Gleb.
Quoted 3 lines · Gleb Natapov
On SVM interrupts are injected by
svm_set_irq()notsvm_inject_irq(). The later is used only to wait for irq window.
And of course ignore this. Haven't noticed compilation error.
Quoted 24 lines
Signed-off-by Gleb Natapov <[email protected]>arch/x86/kvm/svm.c +2
-3@@ -2831,8 +2831,6 @@ static inline void svm_inject_irq(struct vcpu_svm *svm, int irq) {struct vmcb_control_area *control; -trace_kvm_inj_virq (irq); - ++svm->vcpu.stat.irq_injections; control = &svm->vmcb->control; control->int_vector = irq;@@ -2847,6 +2845,8 @@ static void svm_set_irq(struct kvm_vcpu *vcpu)BUG_ON (!(gif_set (svm))); +trace_kvm_inj_virq (irq); + svm->vmcb->control.event_inj = vcpu->arch.interrupt.nr |SVM_EVTINJ_VALID |SVM_EVTINJ_TYPE_INTR ; } --
Quoted 5 lines
Gleb.
--
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
--
Gleb.