These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / arch / x86 / kvm / trace.h
index 7c7bc8b..ab9ae67 100644 (file)
@@ -128,6 +128,24 @@ TRACE_EVENT(kvm_pio,
                  __entry->count > 1 ? "(...)" : "")
 );
 
+/*
+ * Tracepoint for fast mmio.
+ */
+TRACE_EVENT(kvm_fast_mmio,
+       TP_PROTO(u64 gpa),
+       TP_ARGS(gpa),
+
+       TP_STRUCT__entry(
+               __field(u64,    gpa)
+       ),
+
+       TP_fast_assign(
+               __entry->gpa            = gpa;
+       ),
+
+       TP_printk("fast mmio at gpa 0x%llx", __entry->gpa)
+);
+
 /*
  * Tracepoint for cpuid.
  */
@@ -250,7 +268,7 @@ TRACE_EVENT(kvm_inj_virq,
 #define kvm_trace_sym_exc                                              \
        EXS(DE), EXS(DB), EXS(BP), EXS(OF), EXS(BR), EXS(UD), EXS(NM),  \
        EXS(DF), EXS(TS), EXS(NP), EXS(SS), EXS(GP), EXS(PF),           \
-       EXS(MF), EXS(MC)
+       EXS(MF), EXS(AC), EXS(MC)
 
 /*
  * Tracepoint for kvm interrupt injection:
@@ -952,6 +970,61 @@ TRACE_EVENT(kvm_wait_lapic_expire,
                  __entry->delta < 0 ? "early" : "late")
 );
 
+TRACE_EVENT(kvm_enter_smm,
+       TP_PROTO(unsigned int vcpu_id, u64 smbase, bool entering),
+       TP_ARGS(vcpu_id, smbase, entering),
+
+       TP_STRUCT__entry(
+               __field(        unsigned int,   vcpu_id         )
+               __field(        u64,            smbase          )
+               __field(        bool,           entering        )
+       ),
+
+       TP_fast_assign(
+               __entry->vcpu_id        = vcpu_id;
+               __entry->smbase         = smbase;
+               __entry->entering       = entering;
+       ),
+
+       TP_printk("vcpu %u: %s SMM, smbase 0x%llx",
+                 __entry->vcpu_id,
+                 __entry->entering ? "entering" : "leaving",
+                 __entry->smbase)
+);
+
+/*
+ * Tracepoint for VT-d posted-interrupts.
+ */
+TRACE_EVENT(kvm_pi_irte_update,
+       TP_PROTO(unsigned int vcpu_id, unsigned int gsi,
+                unsigned int gvec, u64 pi_desc_addr, bool set),
+       TP_ARGS(vcpu_id, gsi, gvec, pi_desc_addr, set),
+
+       TP_STRUCT__entry(
+               __field(        unsigned int,   vcpu_id         )
+               __field(        unsigned int,   gsi             )
+               __field(        unsigned int,   gvec            )
+               __field(        u64,            pi_desc_addr    )
+               __field(        bool,           set             )
+       ),
+
+       TP_fast_assign(
+               __entry->vcpu_id        = vcpu_id;
+               __entry->gsi            = gsi;
+               __entry->gvec           = gvec;
+               __entry->pi_desc_addr   = pi_desc_addr;
+               __entry->set            = set;
+       ),
+
+       TP_printk("VT-d PI is %s for this irq, vcpu %u, gsi: 0x%x, "
+                 "gvec: 0x%x, pi_desc_addr: 0x%llx",
+                 __entry->set ? "enabled and being updated" : "disabled",
+                 __entry->vcpu_id,
+                 __entry->gsi,
+                 __entry->gvec,
+                 __entry->pi_desc_addr)
+);
+
 #endif /* _TRACE_KVM_H */
 
 #undef TRACE_INCLUDE_PATH