Fix: correctly version kvm events to build against v3.0 kernel
[lttng-modules.git] / instrumentation / events / lttng-module / arch / x86 / kvm / trace.h
index 8e71a7f51f5562db7e3727788b9321e01b2c95d7..2354884074ebeacc9d0b9f182f0e8c19adc5efc4 100644 (file)
@@ -4,7 +4,9 @@
 #include <linux/tracepoint.h>
 #include <asm/vmx.h>
 #include <asm/svm.h>
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0))
 #include <asm/clocksource.h>
+#endif
 #include <linux/version.h>
 #include <../arch/x86/kvm/lapic.h>
 #include <../arch/x86/kvm/kvm_cache_regs.h>
@@ -714,13 +716,23 @@ TRACE_EVENT(kvm_emulate_insn,
                ),
 
        TP_fast_assign(
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,1,0))
+               tp_assign(rip, vcpu->arch.emulate_ctxt.decode.fetch.start)
+               tp_assign(csbase, kvm_x86_ops->get_segment_base(vcpu, VCPU_SREG_CS))
+               tp_assign(len, vcpu->arch.emulate_ctxt.decode.eip
+                              - vcpu->arch.emulate_ctxt.decode.fetch.start)
+               tp_memcpy(insn,
+                      vcpu->arch.emulate_ctxt.decode.fetch.data,
+                      15)
+#else
                tp_assign(rip, vcpu->arch.emulate_ctxt.fetch.start)
-         tp_assign(csbase, kvm_x86_ops->get_segment_base(vcpu, VCPU_SREG_CS))
+               tp_assign(csbase, kvm_x86_ops->get_segment_base(vcpu, VCPU_SREG_CS))
                tp_assign(len, vcpu->arch.emulate_ctxt._eip
                               - vcpu->arch.emulate_ctxt.fetch.start)
                tp_memcpy(insn,
                       vcpu->arch.emulate_ctxt.fetch.data,
                       15)
+#endif
                tp_assign(flags, kei_decode_mode(vcpu->arch.emulate_ctxt.mode))
                tp_assign(failed, failed)
                ),
@@ -761,6 +773,30 @@ TRACE_EVENT(
                  __entry->gpa_match ? "GPA" : "GVA")
 )
 
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
+TRACE_EVENT(kvm_write_tsc_offset,
+       TP_PROTO(unsigned int vcpu_id, __u64 previous_tsc_offset,
+                __u64 next_tsc_offset),
+       TP_ARGS(vcpu_id, previous_tsc_offset, next_tsc_offset),
+
+       TP_STRUCT__entry(
+               __field( unsigned int,  vcpu_id                         )
+               __field(        __u64,  previous_tsc_offset             )
+               __field(        __u64,  next_tsc_offset                 )
+       ),
+
+       TP_fast_assign(
+               tp_assign(vcpu_id, vcpu_id)
+               tp_assign(previous_tsc_offset, previous_tsc_offset)
+               tp_assign(next_tsc_offset, next_tsc_offset)
+       ),
+
+       TP_printk("vcpu=%u prev=%llu next=%llu", __entry->vcpu_id,
+                 __entry->previous_tsc_offset, __entry->next_tsc_offset)
+)
+#endif
+
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0))
 #ifdef CONFIG_X86_64
 
 #define host_clocks                                    \
@@ -821,6 +857,7 @@ TRACE_EVENT(kvm_track_tsc,
 )
 
 #endif /* CONFIG_X86_64 */
+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0) */
 
 #endif /* _TRACE_KVM_H */
 
This page took 0.027378 seconds and 4 git commands to generate.