correctly trace irq injection on SVM.
PATCH v3 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]>
---
ChangeLog:
v1->v2:
- fix stupid cut&paste error.
v2->v3:
- Move also kvm_stat accounting of irq_injections to correct place.
arch/x86/kvm/svm.c +3 -3
@@ -2919,9 +2919,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; control->int_ctl &= ~V_INTR_PRIO_MASK ;
@@ -2935,6 +2932,9 @@ static void svm_set_irq(struct kvm_vcpu *vcpu)BUG_ON (!(gif_set (svm))); +trace_kvm_inj_virq (vcpu->arch.interrupt.nr); + ++vcpu->stat.irq_injections; + svm->vmcb->control.event_inj = vcpu->arch.interrupt.nr |SVM_EVTINJ_VALID |SVM_EVTINJ_TYPE_INTR ; }
--
Gleb.
Avi Kivity
AppliedQuoted 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.
Applied, thanks.
Signature · 1 line
error compiling committee.c: too many arguments to function