1 /* SPDX-License-Identifier: (GPL-2.0-only or LGPL-2.1-only)
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 #include <kvm/iodev.h>
18 * Create the tracepoint static inlines from the kernel to validate that our
19 * trace event macros match the kernel we run on.
21 #include <wrapper/tracepoint.h>
23 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,9,0) || \
24 LTTNG_RHEL_KERNEL_RANGE(4,18,0,305,0,0, 4,19,0,0,0,0))
25 #include <../../arch/x86/kvm/mmu/mmu_internal.h>
26 #include <../../arch/x86/kvm/mmu/mmutrace.h>
28 #include <../../arch/x86/kvm/mmutrace.h>
31 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,10,0) || \
32 LTTNG_RHEL_KERNEL_RANGE(4,18,0,305,0,0, 4,19,0,0,0,0))
33 #include <../arch/x86/kvm/mmu.h>
34 #include <../arch/x86/kvm/mmu/spte.h>
37 #undef TRACE_INCLUDE_PATH
38 #undef TRACE_INCLUDE_FILE
41 * Create LTTng tracepoint probes.
43 #define LTTNG_PACKAGE_BUILD
44 #define CREATE_TRACE_POINTS
46 #define TRACE_INCLUDE_PATH instrumentation/events/arch/x86/kvm
47 #include <instrumentation/events/arch/x86/kvm/mmutrace.h>
49 MODULE_LICENSE("GPL and additional rights");
50 MODULE_AUTHOR("Mathieu Desnoyers <mathieu.desnoyers@efficios.com>");
51 MODULE_DESCRIPTION("LTTng kvm mmu probes");
52 MODULE_VERSION(__stringify(LTTNG_MODULES_MAJOR_VERSION
) "."
53 __stringify(LTTNG_MODULES_MINOR_VERSION
) "."
54 __stringify(LTTNG_MODULES_PATCHLEVEL_VERSION
)
55 LTTNG_MODULES_EXTRAVERSION
);