Commit a183b638 authored by Paolo Bonzini's avatar Paolo Bonzini

KVM: x86: make apic_accept_irq tracepoint more generic

Initially the tracepoint was added only to the APIC_DM_FIXED case,
also because it reported coalesced interrupts that only made sense
for that case.  However, the coalesced argument is not used anymore
and tracing other delivery modes is useful, so hoist the call out
of the switch statement.
Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
parent 73a6d941
...@@ -709,6 +709,8 @@ static int __apic_accept_irq(struct kvm_lapic *apic, int delivery_mode, ...@@ -709,6 +709,8 @@ static int __apic_accept_irq(struct kvm_lapic *apic, int delivery_mode,
int result = 0; int result = 0;
struct kvm_vcpu *vcpu = apic->vcpu; struct kvm_vcpu *vcpu = apic->vcpu;
trace_kvm_apic_accept_irq(vcpu->vcpu_id, delivery_mode,
trig_mode, vector);
switch (delivery_mode) { switch (delivery_mode) {
case APIC_DM_LOWEST: case APIC_DM_LOWEST:
vcpu->arch.apic_arb_prio++; vcpu->arch.apic_arb_prio++;
...@@ -730,8 +732,6 @@ static int __apic_accept_irq(struct kvm_lapic *apic, int delivery_mode, ...@@ -730,8 +732,6 @@ static int __apic_accept_irq(struct kvm_lapic *apic, int delivery_mode,
kvm_make_request(KVM_REQ_EVENT, vcpu); kvm_make_request(KVM_REQ_EVENT, vcpu);
kvm_vcpu_kick(vcpu); kvm_vcpu_kick(vcpu);
} }
trace_kvm_apic_accept_irq(vcpu->vcpu_id, delivery_mode,
trig_mode, vector, false);
break; break;
case APIC_DM_REMRD: case APIC_DM_REMRD:
......
...@@ -415,15 +415,14 @@ TRACE_EVENT(kvm_apic_ipi, ...@@ -415,15 +415,14 @@ TRACE_EVENT(kvm_apic_ipi,
); );
TRACE_EVENT(kvm_apic_accept_irq, TRACE_EVENT(kvm_apic_accept_irq,
TP_PROTO(__u32 apicid, __u16 dm, __u8 tm, __u8 vec, bool coalesced), TP_PROTO(__u32 apicid, __u16 dm, __u8 tm, __u8 vec),
TP_ARGS(apicid, dm, tm, vec, coalesced), TP_ARGS(apicid, dm, tm, vec),
TP_STRUCT__entry( TP_STRUCT__entry(
__field( __u32, apicid ) __field( __u32, apicid )
__field( __u16, dm ) __field( __u16, dm )
__field( __u8, tm ) __field( __u8, tm )
__field( __u8, vec ) __field( __u8, vec )
__field( bool, coalesced )
), ),
TP_fast_assign( TP_fast_assign(
...@@ -431,14 +430,12 @@ TRACE_EVENT(kvm_apic_accept_irq, ...@@ -431,14 +430,12 @@ TRACE_EVENT(kvm_apic_accept_irq,
__entry->dm = dm; __entry->dm = dm;
__entry->tm = tm; __entry->tm = tm;
__entry->vec = vec; __entry->vec = vec;
__entry->coalesced = coalesced;
), ),
TP_printk("apicid %x vec %u (%s|%s)%s", TP_printk("apicid %x vec %u (%s|%s)",
__entry->apicid, __entry->vec, __entry->apicid, __entry->vec,
__print_symbolic((__entry->dm >> 8 & 0x7), kvm_deliver_mode), __print_symbolic((__entry->dm >> 8 & 0x7), kvm_deliver_mode),
__entry->tm ? "level" : "edge", __entry->tm ? "level" : "edge")
__entry->coalesced ? " (coalesced)" : "")
); );
TRACE_EVENT(kvm_eoi, TRACE_EVENT(kvm_eoi,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment