KVM: x86: add tracepoint to wait_lapic_expire
authorMarcelo Tosatti <mtosatti@redhat.com>
Tue, 16 Dec 2014 14:08:16 +0000 (09:08 -0500)
committerPaolo Bonzini <pbonzini@redhat.com>
Thu, 8 Jan 2015 21:48:01 +0000 (22:48 +0100)
Add tracepoint to wait_lapic_expire.

Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
[Remind reader if early or late. - Paolo]
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/lapic.c
arch/x86/kvm/trace.h

index e1c0befaa9f63a967ac8305fa8280bb3956bfd4a..3eb7f8d9992c6880c4712b074189834adc22cf2a 100644 (file)
@@ -1134,6 +1134,7 @@ void wait_lapic_expire(struct kvm_vcpu *vcpu)
        tsc_deadline = apic->lapic_timer.expired_tscdeadline;
        apic->lapic_timer.expired_tscdeadline = 0;
        guest_tsc = kvm_x86_ops->read_l1_tsc(vcpu, native_read_tsc());
+       trace_kvm_wait_lapic_expire(vcpu->vcpu_id, guest_tsc - tsc_deadline);
 
        /* __delay is delay_tsc whenever the hardware has TSC, thus always.  */
        if (guest_tsc < tsc_deadline)
index c2a34bb5ad93a8a3b5336d941c889887124d494f..587149bd6f76d95d6a2d5e29befb518943c44f33 100644 (file)
@@ -914,6 +914,26 @@ TRACE_EVENT(kvm_pvclock_update,
                  __entry->flags)
 );
 
+TRACE_EVENT(kvm_wait_lapic_expire,
+       TP_PROTO(unsigned int vcpu_id, s64 delta),
+       TP_ARGS(vcpu_id, delta),
+
+       TP_STRUCT__entry(
+               __field(        unsigned int,   vcpu_id         )
+               __field(        s64,            delta           )
+       ),
+
+       TP_fast_assign(
+               __entry->vcpu_id           = vcpu_id;
+               __entry->delta             = delta;
+       ),
+
+       TP_printk("vcpu %u: delta %lld (%s)",
+                 __entry->vcpu_id,
+                 __entry->delta,
+                 __entry->delta < 0 ? "early" : "late")
+);
+
 #endif /* _TRACE_KVM_H */
 
 #undef TRACE_INCLUDE_PATH