Add the rt linux 4.1.3-rt3 as base
[kvmfornfv.git] / kernel / arch / powerpc / kvm / trace.h
diff --git a/kernel/arch/powerpc/kvm/trace.h b/kernel/arch/powerpc/kvm/trace.h
new file mode 100644 (file)
index 0000000..2e0e67e
--- /dev/null
@@ -0,0 +1,122 @@
+#if !defined(_TRACE_KVM_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_KVM_H
+
+#include <linux/tracepoint.h>
+
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM kvm
+#define TRACE_INCLUDE_PATH .
+#define TRACE_INCLUDE_FILE trace
+
+/*
+ * Tracepoint for guest mode entry.
+ */
+TRACE_EVENT(kvm_ppc_instr,
+       TP_PROTO(unsigned int inst, unsigned long _pc, unsigned int emulate),
+       TP_ARGS(inst, _pc, emulate),
+
+       TP_STRUCT__entry(
+               __field(        unsigned int,   inst            )
+               __field(        unsigned long,  pc              )
+               __field(        unsigned int,   emulate         )
+       ),
+
+       TP_fast_assign(
+               __entry->inst           = inst;
+               __entry->pc             = _pc;
+               __entry->emulate        = emulate;
+       ),
+
+       TP_printk("inst %u pc 0x%lx emulate %u\n",
+                 __entry->inst, __entry->pc, __entry->emulate)
+);
+
+TRACE_EVENT(kvm_stlb_inval,
+       TP_PROTO(unsigned int stlb_index),
+       TP_ARGS(stlb_index),
+
+       TP_STRUCT__entry(
+               __field(        unsigned int,   stlb_index      )
+       ),
+
+       TP_fast_assign(
+               __entry->stlb_index     = stlb_index;
+       ),
+
+       TP_printk("stlb_index %u", __entry->stlb_index)
+);
+
+TRACE_EVENT(kvm_stlb_write,
+       TP_PROTO(unsigned int victim, unsigned int tid, unsigned int word0,
+                unsigned int word1, unsigned int word2),
+       TP_ARGS(victim, tid, word0, word1, word2),
+
+       TP_STRUCT__entry(
+               __field(        unsigned int,   victim          )
+               __field(        unsigned int,   tid             )
+               __field(        unsigned int,   word0           )
+               __field(        unsigned int,   word1           )
+               __field(        unsigned int,   word2           )
+       ),
+
+       TP_fast_assign(
+               __entry->victim         = victim;
+               __entry->tid            = tid;
+               __entry->word0          = word0;
+               __entry->word1          = word1;
+               __entry->word2          = word2;
+       ),
+
+       TP_printk("victim %u tid %u w0 %u w1 %u w2 %u",
+               __entry->victim, __entry->tid, __entry->word0,
+               __entry->word1, __entry->word2)
+);
+
+TRACE_EVENT(kvm_gtlb_write,
+       TP_PROTO(unsigned int gtlb_index, unsigned int tid, unsigned int word0,
+                unsigned int word1, unsigned int word2),
+       TP_ARGS(gtlb_index, tid, word0, word1, word2),
+
+       TP_STRUCT__entry(
+               __field(        unsigned int,   gtlb_index      )
+               __field(        unsigned int,   tid             )
+               __field(        unsigned int,   word0           )
+               __field(        unsigned int,   word1           )
+               __field(        unsigned int,   word2           )
+       ),
+
+       TP_fast_assign(
+               __entry->gtlb_index     = gtlb_index;
+               __entry->tid            = tid;
+               __entry->word0          = word0;
+               __entry->word1          = word1;
+               __entry->word2          = word2;
+       ),
+
+       TP_printk("gtlb_index %u tid %u w0 %u w1 %u w2 %u",
+               __entry->gtlb_index, __entry->tid, __entry->word0,
+               __entry->word1, __entry->word2)
+);
+
+TRACE_EVENT(kvm_check_requests,
+       TP_PROTO(struct kvm_vcpu *vcpu),
+       TP_ARGS(vcpu),
+
+       TP_STRUCT__entry(
+               __field(        __u32,  cpu_nr          )
+               __field(        __u32,  requests        )
+       ),
+
+       TP_fast_assign(
+               __entry->cpu_nr         = vcpu->vcpu_id;
+               __entry->requests       = vcpu->requests;
+       ),
+
+       TP_printk("vcpu=%x requests=%x",
+               __entry->cpu_nr, __entry->requests)
+);
+
+#endif /* _TRACE_KVM_H */
+
+/* This part must be outside protection */
+#include <trace/define_trace.h>