Update x86 kvm instrumentation for kernel >= 5.7.0
authorMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mon, 13 Apr 2020 16:06:05 +0000 (12:06 -0400)
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mon, 13 Apr 2020 16:17:47 +0000 (12:17 -0400)
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
instrumentation/events/lttng-module/arch/x86/kvm/trace.h
probes/lttng-probe-kvm-x86.c

index 6b744585da7ad560b5311ebad66da4419569033c..0969d32a9f94ee8bef74c4d41918b5ecad2a78d0 100644 (file)
@@ -124,8 +124,13 @@ LTTNG_TRACEPOINT_EVENT_CODE_MAP(kvm_exit, kvm_x86_exit,
        ),
 
        TP_code_pre(
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,7,0))
+               kvm_x86_ops.get_exit_info(vcpu, &tp_locvar->info1,
+                               &tp_locvar->info2);
+#else
                kvm_x86_ops->get_exit_info(vcpu, &tp_locvar->info1,
                                &tp_locvar->info2);
+#endif
        ),
 
        TP_FIELDS(
@@ -430,12 +435,14 @@ LTTNG_TRACEPOINT_EVENT_MAP(kvm_emulate_insn, kvm_x86_emulate_insn,
                ctf_integer(__u8, len, vcpu->arch.emulate_ctxt.decode.eip
                                - vcpu->arch.emulate_ctxt.decode.fetch.start)
                ctf_array(__u8, insn, vcpu->arch.emulate_ctxt.decode.fetch.data, 15)
+               ctf_integer(__u8, flags, kei_decode_mode(vcpu->arch.emulate_ctxt.mode))
 #elif (LINUX_VERSION_CODE < KERNEL_VERSION(3,17,0))
                ctf_integer(__u64, rip, vcpu->arch.emulate_ctxt.fetch.start)
                ctf_integer(__u32, csbase, kvm_x86_ops->get_segment_base(vcpu, VCPU_SREG_CS))
                ctf_integer(__u8, len, vcpu->arch.emulate_ctxt._eip
                                - vcpu->arch.emulate_ctxt.fetch.start)
                ctf_array(__u8, insn, vcpu->arch.emulate_ctxt.fetch.data, 15)
+               ctf_integer(__u8, flags, kei_decode_mode(vcpu->arch.emulate_ctxt.mode))
 #elif (LINUX_VERSION_CODE < KERNEL_VERSION(5,7,0))
                ctf_integer(__u64, rip, vcpu->arch.emulate_ctxt._eip -
                                (vcpu->arch.emulate_ctxt.fetch.ptr -
@@ -444,16 +451,17 @@ LTTNG_TRACEPOINT_EVENT_MAP(kvm_emulate_insn, kvm_x86_emulate_insn,
                ctf_integer(__u8, len, vcpu->arch.emulate_ctxt.fetch.ptr -
                                vcpu->arch.emulate_ctxt.fetch.data)
                ctf_array(__u8, insn, vcpu->arch.emulate_ctxt.fetch.data, 15)
+               ctf_integer(__u8, flags, kei_decode_mode(vcpu->arch.emulate_ctxt.mode))
 #else
                ctf_integer(__u64, rip, vcpu->arch.emulate_ctxt->_eip -
                                (vcpu->arch.emulate_ctxt->fetch.ptr -
                                        vcpu->arch.emulate_ctxt->fetch.data))
-               ctf_integer(__u32, csbase, kvm_x86_ops->get_segment_base(vcpu, VCPU_SREG_CS))
+               ctf_integer(__u32, csbase, kvm_x86_ops.get_segment_base(vcpu, VCPU_SREG_CS))
                ctf_integer(__u8, len, vcpu->arch.emulate_ctxt->fetch.ptr -
                                vcpu->arch.emulate_ctxt->fetch.data)
                ctf_array(__u8, insn, vcpu->arch.emulate_ctxt->fetch.data, 15)
+               ctf_integer(__u8, flags, kei_decode_mode(vcpu->arch.emulate_ctxt->mode))
 #endif
-               ctf_integer(__u8, flags, kei_decode_mode(vcpu->arch.emulate_ctxt.mode))
                ctf_integer(__u8, failed, failed)
        )
 )
index 94280ccab0366457156d505c83537d924b1d790e..a2f3ec693a4a21b640570ac60442c04ad18eaf18 100644 (file)
 #include <lttng-tracer.h>
 #include <lttng-kernel-version.h>
 
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,7,0))
+/* TODO: check for header availability in Makefile */
+#include <../../arch/x86/kvm/kvm_emulate.h>
+#endif
+
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,1,0))
 #include <kvm/iodev.h>
 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,1,0)) */
This page took 0.027716 seconds and 4 git commands to generate.