1 /* SPDX-License-Identifier: (GPL-2.0 or LGPL-2.1)
3 * probes/lttng-probe-kvm.c
7 * Copyright (C) 2010-2012 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10 #include <linux/module.h>
11 #include <linux/kvm_host.h>
12 #include <lttng-tracer.h>
13 #include <lttng-kernel-version.h>
15 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,1,0))
16 #include <kvm/iodev.h>
17 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,1,0)) */
18 #include <../../virt/kvm/iodev.h>
19 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,1,0)) */
22 * Create the tracepoint static inlines from the kernel to validate that our
23 * trace event macros match the kernel we run on.
25 #include <wrapper/tracepoint.h>
27 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,9,0))
28 #include <../../arch/x86/kvm/mmu/mmu_internal.h>
29 #include <../../arch/x86/kvm/mmu/mmutrace.h>
31 #include <../../arch/x86/kvm/mmutrace.h>
34 #undef TRACE_INCLUDE_PATH
35 #undef TRACE_INCLUDE_FILE
38 * Create LTTng tracepoint probes.
40 #define LTTNG_PACKAGE_BUILD
41 #define CREATE_TRACE_POINTS
43 #define TRACE_INCLUDE_PATH instrumentation/events/lttng-module/arch/x86/kvm
44 #include <instrumentation/events/lttng-module/arch/x86/kvm/mmutrace.h>
46 MODULE_LICENSE("GPL and additional rights");
47 MODULE_AUTHOR("Mathieu Desnoyers <mathieu.desnoyers@efficios.com>");
48 MODULE_DESCRIPTION("LTTng kvm mmu probes");
49 MODULE_VERSION(__stringify(LTTNG_MODULES_MAJOR_VERSION
) "."
50 __stringify(LTTNG_MODULES_MINOR_VERSION
) "."
51 __stringify(LTTNG_MODULES_PATCHLEVEL_VERSION
)
52 LTTNG_MODULES_EXTRAVERSION
);