Hello community, here is the log from the commit of package lttng-modules for openSUSE:Factory checked in at 2018-11-15 12:41:54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/lttng-modules (Old) and /work/SRC/openSUSE:Factory/.lttng-modules.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "lttng-modules" Thu Nov 15 12:41:54 2018 rev:8 rq:649120 version:2.10.8 Changes: -------- --- /work/SRC/openSUSE:Factory/lttng-modules/lttng-modules.changes 2018-08-24 17:11:11.362576739 +0200 +++ /work/SRC/openSUSE:Factory/.lttng-modules.new/lttng-modules.changes 2018-11-15 12:41:57.974146449 +0100 @@ -1,0 +2,20 @@ +Wed Nov 14 12:28:56 UTC 2018 - [email protected] + +- Update to version 2.10.8: + * Fix: Update kvm instrumentation for SLES12 SP2 + LTSS >= 4.4.121-92.92. + * Fix: Add missing const to lttng_tracepoint_ptr_deref prototype. + * Fix: Adapt to kernel relative references. + * Fix: Implicit declarations caused by buffer size checks. + * Prevent allocation of buffers if exceeding available memory. + * Fix: Convert rcu tracepointis to gp_seq (v4.19). + * Fix: net: Expose sk wmem in sock_exceed_buf_limit tracepoint + (4.19). + * Fix: Access migrate_disable field directly. + * Fix: Out of memory error handling. +- Enable building for the RT flavor on SLE 15+. +- Remove btrfs-constify-tracepoint-arguments.patch: fixed upstream + for SLE 12. +- Add lttng-modules-fix-leap-15.0.patch: Fix building on Leap 15.0. + +------------------------------------------------------------------- Old: ---- btrfs-constify-tracepoint-arguments.patch lttng-modules-2.10.7.tar.bz2 lttng-modules-2.10.7.tar.bz2.asc New: ---- lttng-modules-2.10.8.tar.bz2 lttng-modules-2.10.8.tar.bz2.asc lttng-modules-fix-leap-15.0.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ lttng-modules.spec ++++++ --- /var/tmp/diff_new_pack.kNM9Y4/_old 2018-11-15 12:41:58.938145353 +0100 +++ /var/tmp/diff_new_pack.kNM9Y4/_new 2018-11-15 12:41:58.938145353 +0100 @@ -12,18 +12,17 @@ # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. -# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# Please submit bugfixes or comments via https://bugs.opensuse.org/ # -#%if (0%%{?suse_version} < 1320 || 0%%{?suse_version} >= 1500) && !0%%{?is_opensuse} -%if 0 +%if 0%{?suse_version} >= 1500 && !0%{?is_opensuse} %ifarch x86_64 %define buildrt 1 %endif %endif Name: lttng-modules -Version: 2.10.7 +Version: 2.10.8 Release: 0 Summary: Licensing information for package lttng-modules License: GPL-2.0-only AND LGPL-2.1-only AND MIT @@ -34,8 +33,8 @@ Source2: %{name}.keyring Source3: %{name}-preamble Source4: Module.supported -# PATCH-FIX-SLE btrfs-constify-tracepoint-arguments.patch bsc#1044912 [email protected] -Patch0: btrfs-constify-tracepoint-arguments.patch +# PATCH-FIX-OPENSUSE lttng-modules-fix-leap-15.0.patch -- Fix building on openSUSE Leap 15.0. +Patch0: lttng-modules-fix-leap-15.0.patch BuildRequires: kernel-devel BuildRequires: kernel-source BuildRequires: kernel-syms @@ -60,9 +59,7 @@ %prep %setup -q -%if (0%{?suse_version} < 1320 || 0%{?suse_version} >= 1500) && !0%{?is_opensuse} %patch0 -p1 -%endif set -- * mkdir source ++++++ lttng-modules-2.10.7.tar.bz2 -> lttng-modules-2.10.8.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lttng-modules-2.10.7/ChangeLog new/lttng-modules-2.10.8/ChangeLog --- old/lttng-modules-2.10.7/ChangeLog 2018-08-09 21:18:38.000000000 +0200 +++ new/lttng-modules-2.10.8/ChangeLog 2018-11-01 23:43:34.000000000 +0100 @@ -1,3 +1,14 @@ +2018-11-01 (National Men Make Dinner Day) LTTng modules 2.10.8 + * Fix: update kvm instrumentation for SLES12 SP2 LTSS >= 4.4.121-92.92 + * Fix: Add missing const to lttng_tracepoint_ptr_deref prototype + * Fix: adapt to kernel relative references + * Fix: implicit declarations caused by buffer size checks. + * Prevent allocation of buffers if exceeding available memory + * Fix: Convert rcu tracepointis to gp_seq (v4.19) + * Fix: net: expose sk wmem in sock_exceed_buf_limit tracepoint (4.19) + * Fix: access migrate_disable field directly + * Fix: out of memory error handling + 2018-08-09 (National Book Lovers Day) LTTng modules 2.10.7 * Fix: adjust SLE version ranges to build with SP2 and SP3 * Fix: Allow alphanumeric characters in SLE version diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lttng-modules-2.10.7/instrumentation/events/lttng-module/kvm.h new/lttng-modules-2.10.8/instrumentation/events/lttng-module/kvm.h --- old/lttng-modules-2.10.7/instrumentation/events/lttng-module/kvm.h 2018-08-09 21:16:36.000000000 +0200 +++ new/lttng-modules-2.10.8/instrumentation/events/lttng-module/kvm.h 2018-11-01 23:43:34.000000000 +0100 @@ -85,7 +85,8 @@ { KVM_TRACE_MMIO_WRITE, "write" } -#if (LTTNG_SLE_KERNEL_RANGE(4,4,131,94,0,0, 4,5,0,0,0,0)) +#if (LTTNG_SLE_KERNEL_RANGE(4,4,121,92,92,0, 4,4,122,0,0,0) \ + || LTTNG_SLE_KERNEL_RANGE(4,4,131,94,0,0, 4,5,0,0,0,0)) LTTNG_TRACEPOINT_EVENT(kvm_mmio, TP_PROTO(int type, int len, u64 gpa, u64 val), diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lttng-modules-2.10.7/instrumentation/events/lttng-module/rcu.h new/lttng-modules-2.10.8/instrumentation/events/lttng-module/rcu.h --- old/lttng-modules-2.10.7/instrumentation/events/lttng-module/rcu.h 2018-08-09 21:16:36.000000000 +0200 +++ new/lttng-modules-2.10.8/instrumentation/events/lttng-module/rcu.h 2018-11-01 23:43:34.000000000 +0100 @@ -49,13 +49,36 @@ * and "cpuofl", respectively), and a CPU being kicked for being too * long in dyntick-idle mode ("kick"). */ +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,19,0)) +LTTNG_TRACEPOINT_EVENT(rcu_grace_period, + + TP_PROTO(const char *rcuname, unsigned long gp_seq, const char *gpevent), + + TP_ARGS(rcuname, gp_seq, gpevent), + + TP_FIELDS( + ctf_string(rcuname, rcuname) + ctf_integer(unsigned long, gp_seq, gp_seq) + ctf_string(gpevent, gpevent) + ) +) +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) LTTNG_TRACEPOINT_EVENT(rcu_grace_period, -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) TP_PROTO(const char *rcuname, unsigned long gpnum, const char *gpevent), -#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) */ + + TP_ARGS(rcuname, gpnum, gpevent), + + TP_FIELDS( + ctf_string(rcuname, rcuname) + ctf_integer(unsigned long, gpnum, gpnum) + ctf_string(gpevent, gpevent) + ) +) +#else +LTTNG_TRACEPOINT_EVENT(rcu_grace_period, + TP_PROTO(char *rcuname, unsigned long gpnum, char *gpevent), -#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) */ TP_ARGS(rcuname, gpnum, gpevent), @@ -65,6 +88,7 @@ ctf_string(gpevent, gpevent) ) ) +#endif /* * Tracepoint for grace-period-initialization events. These are @@ -73,15 +97,45 @@ * rcu_node structure, and the mask of CPUs that will be waited for. * All but the type of RCU are extracted from the rcu_node structure. */ +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,19,0)) +LTTNG_TRACEPOINT_EVENT(rcu_grace_period_init, + + TP_PROTO(const char *rcuname, unsigned long gp_seq, u8 level, + int grplo, int grphi, unsigned long qsmask), + + TP_ARGS(rcuname, gp_seq, level, grplo, grphi, qsmask), + + TP_FIELDS( + ctf_string(rcuname, rcuname) + ctf_integer(unsigned long, gp_seq, gp_seq) + ctf_integer(u8, level, level) + ctf_integer(int, grplo, grplo) + ctf_integer(int, grphi, grphi) + ctf_integer(unsigned long, qsmask, qsmask) + ) +) +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) LTTNG_TRACEPOINT_EVENT(rcu_grace_period_init, -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) TP_PROTO(const char *rcuname, unsigned long gpnum, u8 level, int grplo, int grphi, unsigned long qsmask), -#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) */ + + TP_ARGS(rcuname, gpnum, level, grplo, grphi, qsmask), + + TP_FIELDS( + ctf_string(rcuname, rcuname) + ctf_integer(unsigned long, gpnum, gpnum) + ctf_integer(u8, level, level) + ctf_integer(int, grplo, grplo) + ctf_integer(int, grphi, grphi) + ctf_integer(unsigned long, qsmask, qsmask) + ) +) +#else +LTTNG_TRACEPOINT_EVENT(rcu_grace_period_init, + TP_PROTO(char *rcuname, unsigned long gpnum, u8 level, int grplo, int grphi, unsigned long qsmask), -#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) */ TP_ARGS(rcuname, gpnum, level, grplo, grphi, qsmask), @@ -94,6 +148,7 @@ ctf_integer(unsigned long, qsmask, qsmask) ) ) +#endif /* * Tracepoint for tasks blocking within preemptible-RCU read-side @@ -101,13 +156,36 @@ * include SRCU), the grace-period number that the task is blocking * (the current or the next), and the task's PID. */ +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,19,0)) +LTTNG_TRACEPOINT_EVENT(rcu_preempt_task, + + TP_PROTO(const char *rcuname, int pid, unsigned long gp_seq), + + TP_ARGS(rcuname, pid, gp_seq), + + TP_FIELDS( + ctf_string(rcuname, rcuname) + ctf_integer(unsigned long, gp_seq, gp_seq) + ctf_integer(int, pid, pid) + ) +) +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) LTTNG_TRACEPOINT_EVENT(rcu_preempt_task, -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) TP_PROTO(const char *rcuname, int pid, unsigned long gpnum), -#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) */ + + TP_ARGS(rcuname, pid, gpnum), + + TP_FIELDS( + ctf_string(rcuname, rcuname) + ctf_integer(unsigned long, gpnum, gpnum) + ctf_integer(int, pid, pid) + ) +) +#else +LTTNG_TRACEPOINT_EVENT(rcu_preempt_task, + TP_PROTO(char *rcuname, int pid, unsigned long gpnum), -#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) */ TP_ARGS(rcuname, pid, gpnum), @@ -117,19 +195,43 @@ ctf_integer(int, pid, pid) ) ) +#endif /* * Tracepoint for tasks that blocked within a given preemptible-RCU * read-side critical section exiting that critical section. Track the * type of RCU (which one day might include SRCU) and the task's PID. */ +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,19,0)) +LTTNG_TRACEPOINT_EVENT(rcu_unlock_preempted_task, + + TP_PROTO(const char *rcuname, unsigned long gp_seq, int pid), + + TP_ARGS(rcuname, gp_seq, pid), + + TP_FIELDS( + ctf_string(rcuname, rcuname) + ctf_integer(unsigned long, gp_seq, gp_seq) + ctf_integer(int, pid, pid) + ) +) +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) LTTNG_TRACEPOINT_EVENT(rcu_unlock_preempted_task, -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) TP_PROTO(const char *rcuname, unsigned long gpnum, int pid), -#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) */ + + TP_ARGS(rcuname, gpnum, pid), + + TP_FIELDS( + ctf_string(rcuname, rcuname) + ctf_integer(unsigned long, gpnum, gpnum) + ctf_integer(int, pid, pid) + ) +) +#else +LTTNG_TRACEPOINT_EVENT(rcu_unlock_preempted_task, + TP_PROTO(char *rcuname, unsigned long gpnum, int pid), -#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) */ TP_ARGS(rcuname, gpnum, pid), @@ -139,6 +241,7 @@ ctf_integer(int, pid, pid) ) ) +#endif /* * Tracepoint for quiescent-state-reporting events. These are @@ -148,17 +251,52 @@ * whether there are any blocked tasks blocking the current grace period. * All but the type of RCU are extracted from the rcu_node structure. */ +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,19,0)) +LTTNG_TRACEPOINT_EVENT(rcu_quiescent_state_report, + + TP_PROTO(const char *rcuname, unsigned long gp_seq, + unsigned long mask, unsigned long qsmask, + u8 level, int grplo, int grphi, int gp_tasks), + + TP_ARGS(rcuname, gp_seq, mask, qsmask, level, grplo, grphi, gp_tasks), + + TP_FIELDS( + ctf_string(rcuname, rcuname) + ctf_integer(unsigned long, gp_seq, gp_seq) + ctf_integer(unsigned long, mask, mask) + ctf_integer(unsigned long, qsmask, qsmask) + ctf_integer(u8, level, level) + ctf_integer(int, grplo, grplo) + ctf_integer(int, grphi, grphi) + ctf_integer(u8, gp_tasks, gp_tasks) + ) +) +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) LTTNG_TRACEPOINT_EVENT(rcu_quiescent_state_report, -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) TP_PROTO(const char *rcuname, unsigned long gpnum, unsigned long mask, unsigned long qsmask, u8 level, int grplo, int grphi, int gp_tasks), -#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) */ + + TP_ARGS(rcuname, gpnum, mask, qsmask, level, grplo, grphi, gp_tasks), + + TP_FIELDS( + ctf_string(rcuname, rcuname) + ctf_integer(unsigned long, gpnum, gpnum) + ctf_integer(unsigned long, mask, mask) + ctf_integer(unsigned long, qsmask, qsmask) + ctf_integer(u8, level, level) + ctf_integer(int, grplo, grplo) + ctf_integer(int, grphi, grphi) + ctf_integer(u8, gp_tasks, gp_tasks) + ) +) +#else +LTTNG_TRACEPOINT_EVENT(rcu_quiescent_state_report, + TP_PROTO(char *rcuname, unsigned long gpnum, unsigned long mask, unsigned long qsmask, u8 level, int grplo, int grphi, int gp_tasks), -#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) */ TP_ARGS(rcuname, gpnum, mask, qsmask, level, grplo, grphi, gp_tasks), @@ -173,6 +311,7 @@ ctf_integer(u8, gp_tasks, gp_tasks) ) ) +#endif /* * Tracepoint for quiescent states detected by force_quiescent_state(). @@ -182,13 +321,38 @@ * or "kick" when kicking a CPU that has been in dyntick-idle mode for * too long. */ +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,19,0)) +LTTNG_TRACEPOINT_EVENT(rcu_fqs, + + TP_PROTO(const char *rcuname, unsigned long gp_seq, int cpu, const char *qsevent), + + TP_ARGS(rcuname, gp_seq, cpu, qsevent), + + TP_FIELDS( + ctf_integer(unsigned long, gp_seq, gp_seq) + ctf_integer(int, cpu, cpu) + ctf_string(rcuname, rcuname) + ctf_string(qsevent, qsevent) + ) +) +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) LTTNG_TRACEPOINT_EVENT(rcu_fqs, -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) TP_PROTO(const char *rcuname, unsigned long gpnum, int cpu, const char *qsevent), -#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) */ + + TP_ARGS(rcuname, gpnum, cpu, qsevent), + + TP_FIELDS( + ctf_integer(unsigned long, gpnum, gpnum) + ctf_integer(int, cpu, cpu) + ctf_string(rcuname, rcuname) + ctf_string(qsevent, qsevent) + ) +) +#else +LTTNG_TRACEPOINT_EVENT(rcu_fqs, + TP_PROTO(char *rcuname, unsigned long gpnum, int cpu, char *qsevent), -#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) */ TP_ARGS(rcuname, gpnum, cpu, qsevent), @@ -199,6 +363,7 @@ ctf_string(qsevent, qsevent) ) ) +#endif #endif /* * #if defined(CONFIG_TREE_RCU) @@ -603,6 +768,17 @@ #else /* #ifdef CONFIG_RCU_TRACE */ +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,19,0)) +#define trace_rcu_grace_period(rcuname, gp_seq, gpevent) do { } while (0) +#define trace_rcu_grace_period_init(rcuname, gp_seq, level, grplo, grphi, \ + qsmask) do { } while (0) +#define trace_rcu_preempt_task(rcuname, pid, gp_seq) do { } while (0) +#define trace_rcu_unlock_preempted_task(rcuname, gp_seq, pid) do { } while (0) +#define trace_rcu_quiescent_state_report(rcuname, gp_seq, mask, qsmask, level, \ + grplo, grphi, gp_tasks) do { } \ + while (0) +#define trace_rcu_fqs(rcuname, gp_seq, cpu, qsevent) do { } while (0) +#else #define trace_rcu_grace_period(rcuname, gpnum, gpevent) do { } while (0) #define trace_rcu_grace_period_init(rcuname, gpnum, level, grplo, grphi, \ qsmask) do { } while (0) @@ -612,6 +788,8 @@ grplo, grphi, gp_tasks) do { } \ while (0) #define trace_rcu_fqs(rcuname, gpnum, cpu, qsevent) do { } while (0) +#endif + #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,16,0)) #define trace_rcu_dyntick(polarity, oldnesting, newnesting, dyntick) do { } while (0) #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lttng-modules-2.10.7/instrumentation/events/lttng-module/sock.h new/lttng-modules-2.10.8/instrumentation/events/lttng-module/sock.h --- old/lttng-modules-2.10.7/instrumentation/events/lttng-module/sock.h 2018-08-09 21:16:36.000000000 +0200 +++ new/lttng-modules-2.10.8/instrumentation/events/lttng-module/sock.h 2018-11-01 23:43:34.000000000 +0100 @@ -21,7 +21,28 @@ ) ) -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,15,0)) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,19,0)) + +LTTNG_TRACEPOINT_EVENT(sock_exceed_buf_limit, + + TP_PROTO(struct sock *sk, struct proto *prot, long allocated, int kind), + + TP_ARGS(sk, prot, allocated, kind), + + TP_FIELDS( + ctf_string(name, prot->name) + ctf_array(long, sysctl_mem, prot->sysctl_mem, 3) + ctf_integer(long, allocated, allocated) + ctf_integer(int, sysctl_rmem, sk_get_rmem0(sk, prot)) + ctf_integer(int, rmem_alloc, atomic_read(&sk->sk_rmem_alloc)) + ctf_integer(int, sysctl_wmem, sk_get_wmem0(sk, prot)) + ctf_integer(int, wmem_alloc, refcount_read(&sk->sk_wmem_alloc)) + ctf_integer(int, wmem_queued, sk->sk_wmem_queued) + ctf_integer(int, kind, kind) + ) +) + +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,15,0)) LTTNG_TRACEPOINT_EVENT(sock_exceed_buf_limit, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lttng-modules-2.10.7/lib/ringbuffer/ring_buffer_backend.c new/lttng-modules-2.10.8/lib/ringbuffer/ring_buffer_backend.c --- old/lttng-modules-2.10.7/lib/ringbuffer/ring_buffer_backend.c 2018-08-09 21:16:36.000000000 +0200 +++ new/lttng-modules-2.10.8/lib/ringbuffer/ring_buffer_backend.c 2018-11-01 23:43:34.000000000 +0100 @@ -29,6 +29,7 @@ #include <linux/mm.h> #include <linux/vmalloc.h> +#include <wrapper/mm.h> #include <wrapper/vmalloc.h> /* for wrapper_vmalloc_sync_all() */ #include <wrapper/ringbuffer/config.h> #include <wrapper/ringbuffer/backend.h> @@ -56,6 +57,25 @@ unsigned long i; num_pages = size >> PAGE_SHIFT; + + /* + * Verify that there is enough free pages available on the system for + * the current allocation request. + * wrapper_check_enough_free_pages uses si_mem_available() if available + * and returns if there should be enough free pages based on the + * current estimate. + */ + if (!wrapper_check_enough_free_pages(num_pages)) + goto not_enough_pages; + + /* + * Set the current user thread as the first target of the OOM killer. + * If the estimate received by si_mem_available() was off, and we do + * end up running out of memory because of this buffer allocation, we + * want to kill the offending app first. + */ + wrapper_set_current_oom_origin(); + num_pages_per_subbuf = num_pages >> get_count_order(num_subbuf); subbuf_size = chanb->subbuf_size; num_subbuf_alloc = num_subbuf; @@ -150,6 +170,7 @@ * will not fault. */ wrapper_vmalloc_sync_all(); + wrapper_clear_current_oom_origin(); vfree(pages); return 0; @@ -166,6 +187,8 @@ array_error: vfree(pages); pages_error: + wrapper_clear_current_oom_origin(); +not_enough_pages: return -ENOMEM; } @@ -468,9 +491,11 @@ free_bufs: if (config->alloc == RING_BUFFER_ALLOC_PER_CPU) { #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)) - ret = cpuhp_state_remove_instance(lttng_rb_hp_prepare, - &chanb->cpuhp_prepare.node); - WARN_ON(ret); + /* + * Teardown of lttng_rb_hp_prepare instance + * on "add" error is handled within cpu hotplug, + * no teardown to do from the caller. + */ #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)) */ #ifdef CONFIG_HOTPLUG_CPU put_online_cpus(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lttng-modules-2.10.7/lttng-context-migratable.c new/lttng-modules-2.10.8/lttng-context-migratable.c --- old/lttng-modules-2.10.7/lttng-context-migratable.c 2018-08-09 21:16:36.000000000 +0200 +++ new/lttng-modules-2.10.8/lttng-context-migratable.c 2018-11-01 23:43:34.000000000 +0100 @@ -44,7 +44,7 @@ struct lib_ring_buffer_ctx *ctx, struct lttng_channel *chan) { - uint8_t migratable = !__migrate_disabled(current); + uint8_t migratable = !current->migrate_disable; lib_ring_buffer_align_ctx(ctx, lttng_alignof(migratable)); chan->ops->event_write(ctx, &migratable, sizeof(migratable)); @@ -55,7 +55,7 @@ struct lttng_probe_ctx *lttng_probe_ctx, union lttng_ctx_value *value) { - value->s64 = !__migrate_disabled(current); + value->s64 = !current->migrate_disable; } int lttng_add_migratable_to_ctx(struct lttng_ctx **ctx) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lttng-modules-2.10.7/lttng-tracepoint.c new/lttng-modules-2.10.8/lttng-tracepoint.c --- old/lttng-modules-2.10.7/lttng-tracepoint.c 2018-08-09 21:16:36.000000000 +0200 +++ new/lttng-modules-2.10.8/lttng-tracepoint.c 2018-11-01 23:43:34.000000000 +0100 @@ -30,6 +30,7 @@ #include <lttng-tracepoint.h> #include <wrapper/list.h> +#include <wrapper/tracepoint.h> /* * Protect the tracepoint table. lttng_tracepoint_mutex nests within @@ -241,7 +242,7 @@ struct tracepoint_entry *e; struct lttng_tp_probe *p; - tp = tp_mod->mod->tracepoints_ptrs[i]; + tp = lttng_tracepoint_ptr_deref(&tp_mod->mod->tracepoints_ptrs[i]); e = get_tracepoint(tp->name); if (!e) { e = add_tracepoint(tp->name); @@ -282,7 +283,7 @@ struct tracepoint_entry *e; struct lttng_tp_probe *p; - tp = tp_mod->mod->tracepoints_ptrs[i]; + tp = lttng_tracepoint_ptr_deref(&tp_mod->mod->tracepoints_ptrs[i]); e = get_tracepoint(tp->name); if (!e || !e->tp) continue; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lttng-modules-2.10.7/lttng-tracer.h new/lttng-modules-2.10.8/lttng-tracer.h --- old/lttng-modules-2.10.7/lttng-tracer.h 2018-08-09 21:18:48.000000000 +0200 +++ new/lttng-modules-2.10.8/lttng-tracer.h 2018-11-01 23:43:34.000000000 +0100 @@ -42,7 +42,7 @@ #define LTTNG_MODULES_MAJOR_VERSION 2 #define LTTNG_MODULES_MINOR_VERSION 10 -#define LTTNG_MODULES_PATCHLEVEL_VERSION 7 +#define LTTNG_MODULES_PATCHLEVEL_VERSION 8 #define LTTNG_MODULES_EXTRAVERSION "" #define LTTNG_VERSION_NAME "KeKriek" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lttng-modules-2.10.7/wrapper/mm.h new/lttng-modules-2.10.8/wrapper/mm.h --- old/lttng-modules-2.10.7/wrapper/mm.h 1970-01-01 01:00:00.000000000 +0100 +++ new/lttng-modules-2.10.8/wrapper/mm.h 2018-10-17 06:28:53.000000000 +0200 @@ -0,0 +1,70 @@ +/* SPDX-License-Identifier: (GPL-2.0 or LGPL-2.1) + * + * wrapper/mm.h + * + * Copyright (C) 2018 Francis Deslauriers <[email protected]> + */ + +#ifndef _LTTNG_WRAPPER_MM_H +#define _LTTNG_WRAPPER_MM_H + +#include <linux/mm.h> +#include <linux/oom.h> + +#include <lttng-kernel-version.h> + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,6,0) \ + || LTTNG_UBUNTU_KERNEL_RANGE(4,4,25,44, 4,5,0,0)) + +/* + * Returns true if the current estimation of the number of page available is + * larger than the number of pages passed as parameter. + */ +static inline +bool wrapper_check_enough_free_pages(unsigned long num_pages) +{ + return num_pages < si_mem_available(); +} + +#else + +static inline +bool wrapper_check_enough_free_pages(unsigned long num_pages) +{ + /* + * The si_mem_available function is not available on this kernel. Since + * we can't reliably know if there is enough memory available, so we + * return true. + */ + return true; +} +#endif + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) +static inline +void wrapper_set_current_oom_origin(void) +{ + return set_current_oom_origin(); +} + +static inline +void wrapper_clear_current_oom_origin(void) +{ + return clear_current_oom_origin(); +} + +#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) */ + +static inline +void wrapper_set_current_oom_origin(void) +{ + return; +} + +static inline +void wrapper_clear_current_oom_origin() +{ + return; +} +#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) */ +#endif /* _LTTNG_WRAPPER_MM_H */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lttng-modules-2.10.7/wrapper/tracepoint.h new/lttng-modules-2.10.8/wrapper/tracepoint.h --- old/lttng-modules-2.10.7/wrapper/tracepoint.h 2018-08-09 21:16:36.000000000 +0200 +++ new/lttng-modules-2.10.8/wrapper/tracepoint.h 2018-11-01 23:43:34.000000000 +0100 @@ -120,4 +120,16 @@ #endif /*#else #if defined(CONFIG_MODULE_SIG) && defined(MODULE) */ +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,19,0)) +static inline struct tracepoint *lttng_tracepoint_ptr_deref(tracepoint_ptr_t *p) +{ + return tracepoint_ptr_deref(p); +} +#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,19,0)) */ +static inline struct tracepoint *lttng_tracepoint_ptr_deref(struct tracepoint * const *p) +{ + return *p; +} +#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,19,0)) */ + #endif /* _LTTNG_WRAPPER_TRACEPOINT_H */ ++++++ lttng-modules-fix-leap-15.0.patch ++++++ --- a/instrumentation/events/lttng-module/block.h +++ b/instrumentation/events/lttng-module/block.h @@ -618,7 +618,8 @@ LTTNG_TRACEPOINT_EVENT(block_bio_bounce, TP_ARGS(q, bio), TP_FIELDS( -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0)) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0) \ + || LTTNG_KERNEL_RANGE(4,12,0, 4,13,0)) /* openSUSE */ ctf_integer(dev_t, dev, bio_dev(bio)) #else ctf_integer(dev_t, dev, bio->bi_bdev ? bio->bi_bdev->bd_dev : 0) @@ -663,7 +664,8 @@ LTTNG_TRACEPOINT_EVENT(block_bio_complet #endif TP_FIELDS( -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0)) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0) \ + || LTTNG_KERNEL_RANGE(4,12,0, 4,13,0)) /* openSUSE */ ctf_integer(dev_t, dev, bio_dev(bio)) #else ctf_integer(dev_t, dev, bio->bi_bdev->bd_dev) @@ -697,7 +699,8 @@ LTTNG_TRACEPOINT_EVENT_CLASS(block_bio_m TP_ARGS(q, rq, bio), TP_FIELDS( -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0)) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0) \ + || LTTNG_KERNEL_RANGE(4,12,0, 4,13,0)) /* openSUSE */ ctf_integer(dev_t, dev, bio_dev(bio)) #else ctf_integer(dev_t, dev, bio->bi_bdev->bd_dev) @@ -763,7 +766,8 @@ LTTNG_TRACEPOINT_EVENT(block_bio_queue, TP_ARGS(q, bio), TP_FIELDS( -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0)) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0) \ + || LTTNG_KERNEL_RANGE(4,12,0, 4,13,0)) /* openSUSE */ ctf_integer(dev_t, dev, bio_dev(bio)) #else ctf_integer(dev_t, dev, bio->bi_bdev->bd_dev) @@ -854,7 +858,8 @@ LTTNG_TRACEPOINT_EVENT_CLASS(block_get_r TP_ARGS(q, bio, rw), TP_FIELDS( -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0)) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0) \ + || LTTNG_KERNEL_RANGE(4,12,0, 4,13,0)) /* openSUSE */ ctf_integer(dev_t, dev, bio ? bio_dev(bio) : 0) #else ctf_integer(dev_t, dev, bio ? bio->bi_bdev->bd_dev : 0) @@ -1019,7 +1024,8 @@ LTTNG_TRACEPOINT_EVENT(block_split, TP_ARGS(q, bio, new_sector), TP_FIELDS( -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0)) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0) \ + || LTTNG_KERNEL_RANGE(4,12,0, 4,13,0)) /* openSUSE */ ctf_integer(dev_t, dev, bio_dev(bio)) #else ctf_integer(dev_t, dev, bio->bi_bdev->bd_dev) @@ -1062,7 +1068,8 @@ LTTNG_TRACEPOINT_EVENT(block_remap, TP_ARGS(q, bio, dev, from), TP_FIELDS( -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0)) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0) \ + || LTTNG_KERNEL_RANGE(4,12,0, 4,13,0)) /* openSUSE */ ctf_integer(dev_t, dev, bio_dev(bio)) #else ctf_integer(dev_t, dev, bio->bi_bdev->bd_dev) --- a/instrumentation/events/lttng-module/btrfs.h +++ b/instrumentation/events/lttng-module/btrfs.h @@ -33,10 +33,12 @@ struct extent_state; #define BTRFS_UUID_SIZE 16 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0) || \ + LTTNG_KERNEL_RANGE(4,12,0, 4,13,0) /* openSUSE */ || \ LTTNG_SLE_KERNEL_RANGE(4,4,73,5,0,0, 4,4,73,6,0,0) || \ LTTNG_SLE_KERNEL_RANGE(4,4,82,6,0,0, 4,4,82,7,0,0) || \ LTTNG_SLE_KERNEL_RANGE(4,4,92,6,0,0, 4,4,92,7,0,0) || \ LTTNG_SLE_KERNEL_RANGE(4,4,103,6,0,0, 4,5,0,0,0,0)) + LTTNG_TRACEPOINT_EVENT(btrfs_transaction_commit, TP_PROTO(const struct btrfs_root *root), @@ -140,7 +142,8 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__i ) #endif -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0)) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0) || \ + LTTNG_KERNEL_RANGE(4,12,0, 4,13,0)) /* openSUSE */ LTTNG_TRACEPOINT_EVENT(btrfs_get_extent, @@ -279,7 +282,8 @@ LTTNG_TRACEPOINT_EVENT(btrfs_get_extent, #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)) */ -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0)) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0) || \ + LTTNG_KERNEL_RANGE(4,12,0, 4,13,0)) /* openSUSE */ LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__ordered_extent, TP_PROTO(const struct inode *inode, @@ -323,6 +327,7 @@ LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__orde ) ) #elif (LTTNG_SLE_KERNEL_RANGE(4,4,73,5,0,0, 4,4,73,6,0,0) || \ + LTTNG_KERNEL_RANGE(4,12,0, 4,13,0) /* openSUSE */ || \ LTTNG_SLE_KERNEL_RANGE(4,4,82,6,0,0, 4,4,82,7,0,0) || \ LTTNG_SLE_KERNEL_RANGE(4,4,92,6,0,0, 4,4,92,7,0,0) || \ LTTNG_SLE_KERNEL_RANGE(4,4,103,6,0,0, 4,5,0,0,0,0)) @@ -370,6 +375,7 @@ LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__orde #endif #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0) || \ + LTTNG_KERNEL_RANGE(4,12,0, 4,13,0) /* openSUSE */ || \ LTTNG_SLE_KERNEL_RANGE(4,4,73,5,0,0, 4,4,73,6,0,0) || \ LTTNG_SLE_KERNEL_RANGE(4,4,82,6,0,0, 4,4,82,7,0,0) || \ LTTNG_SLE_KERNEL_RANGE(4,4,92,6,0,0, 4,4,92,7,0,0) || \ @@ -575,6 +581,7 @@ LTTNG_TRACEPOINT_EVENT(btrfs_sync_file, #endif #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0) || \ + LTTNG_KERNEL_RANGE(4,12,0, 4,13,0) /* openSUSE */ || \ LTTNG_SLE_KERNEL_RANGE(4,4,73,5,0,0, 4,4,73,6,0,0) || \ LTTNG_SLE_KERNEL_RANGE(4,4,82,6,0,0, 4,4,82,7,0,0) || \ LTTNG_SLE_KERNEL_RANGE(4,4,92,6,0,0, 4,4,92,7,0,0) || \ @@ -617,6 +624,7 @@ LTTNG_TRACEPOINT_EVENT(btrfs_sync_fs, #endif #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0) || \ + LTTNG_KERNEL_RANGE(4,12,0, 4,13,0) /* openSUSE */ || \ LTTNG_SLE_KERNEL_RANGE(4,4,73,5,0,0, 4,4,73,6,0,0) || \ LTTNG_SLE_KERNEL_RANGE(4,4,82,6,0,0, 4,4,82,7,0,0) || \ LTTNG_SLE_KERNEL_RANGE(4,4,92,6,0,0, 4,4,92,7,0,0) || \ @@ -791,6 +799,7 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(btrf ) #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0) || \ + LTTNG_KERNEL_RANGE(4,12,0, 4,13,0) /* openSUSE */ || \ LTTNG_SLE_KERNEL_RANGE(4,4,73,5,0,0, 4,4,73,6,0,0) || \ LTTNG_SLE_KERNEL_RANGE(4,4,82,6,0,0, 4,4,82,7,0,0) || \ LTTNG_SLE_KERNEL_RANGE(4,4,92,6,0,0, 4,4,92,7,0,0) || \ @@ -994,7 +1003,8 @@ LTTNG_TRACEPOINT_EVENT(btrfs_delayed_ref ) #endif -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0)) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0) || \ + LTTNG_KERNEL_RANGE(4,12,0, 4,13,0)) /* openSUSE */ LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__chunk, @@ -1064,7 +1074,8 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__c TP_ARGS(info, map, offset, size) ) -#elif (LTTNG_SLE_KERNEL_RANGE(4,4,73,5,0,0, 4,4,73,6,0,0) || \ +#elif (LTTNG_KERNEL_RANGE(4,12,0, 4,13,0) /* openSUSE */ || \ + LTTNG_SLE_KERNEL_RANGE(4,4,73,5,0,0, 4,4,73,6,0,0) || \ LTTNG_SLE_KERNEL_RANGE(4,4,82,6,0,0, 4,4,82,7,0,0) || \ LTTNG_SLE_KERNEL_RANGE(4,4,92,6,0,0, 4,4,92,7,0,0) || \ LTTNG_SLE_KERNEL_RANGE(4,4,103,6,0,0, 4,5,0,0,0,0)) @@ -1140,6 +1151,7 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__c #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)) */ #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0) || \ + LTTNG_KERNEL_RANGE(4,12,0, 4,13,0) /* openSUSE */ || \ LTTNG_SLE_KERNEL_RANGE(4,4,73,5,0,0, 4,4,73,6,0,0) || \ LTTNG_SLE_KERNEL_RANGE(4,4,82,6,0,0, 4,4,82,7,0,0) || \ LTTNG_SLE_KERNEL_RANGE(4,4,92,6,0,0, 4,4,92,7,0,0) || \ @@ -1180,6 +1192,7 @@ LTTNG_TRACEPOINT_EVENT(btrfs_cow_block, #endif #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0) || \ + LTTNG_KERNEL_RANGE(4,12,0, 4,13,0) /* openSUSE */ || \ LTTNG_SLE_KERNEL_RANGE(4,4,73,5,0,0, 4,4,73,6,0,0) || \ LTTNG_SLE_KERNEL_RANGE(4,4,82,6,0,0, 4,4,82,7,0,0) || \ LTTNG_SLE_KERNEL_RANGE(4,4,92,6,0,0, 4,4,92,7,0,0) || \ @@ -1217,7 +1230,8 @@ LTTNG_TRACEPOINT_EVENT(btrfs_space_reser ) #endif -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0)) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0) || \ + LTTNG_KERNEL_RANGE(4,12,0, 4,13,0)) /* openSUSE */ LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__reserved_extent, @@ -1386,7 +1400,8 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__r TP_ARGS(block_group, start, len) ) -#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0)) +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0) || \ + LTTNG_KERNEL_RANGE(4,12,0, 4,13,0)) /* openSUSE */ LTTNG_TRACEPOINT_EVENT_MAP(find_free_extent, btrfs_find_free_extent, @@ -1605,6 +1620,7 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__r #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)) */ #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0) || \ + LTTNG_KERNEL_RANGE(4,12,0, 4,13,0) /* openSUSE */ || \ LTTNG_SLE_KERNEL_RANGE(4,4,73,5,0,0, 4,4,73,6,0,0) || \ LTTNG_SLE_KERNEL_RANGE(4,4,82,6,0,0, 4,4,82,7,0,0) || \ LTTNG_SLE_KERNEL_RANGE(4,4,92,6,0,0, 4,4,92,7,0,0) || \ @@ -1701,6 +1717,7 @@ LTTNG_TRACEPOINT_EVENT(btrfs_setup_clust #endif #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0) || \ + LTTNG_KERNEL_RANGE(4,12,0, 4,13,0) /* openSUSE */ || \ LTTNG_SLE_KERNEL_RANGE(4,4,73,5,0,0, 4,4,73,6,0,0) || \ LTTNG_SLE_KERNEL_RANGE(4,4,82,6,0,0, 4,4,82,7,0,0) || \ LTTNG_SLE_KERNEL_RANGE(4,4,92,6,0,0, 4,4,92,7,0,0) || \ --- a/instrumentation/events/lttng-module/kmem.h +++ b/instrumentation/events/lttng-module/kmem.h @@ -132,7 +132,8 @@ LTTNG_TRACEPOINT_EVENT_MAP(mm_page_free_ ) ) -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,15,0)) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,15,0) \ + || LTTNG_KERNEL_RANGE(4,12,0, 4,13,0)) /* openSUSE */ LTTNG_TRACEPOINT_EVENT_MAP(mm_page_free_batched, kmem_mm_page_free_batched, TP_PROTO(struct page *page), --- a/instrumentation/events/lttng-module/kvm.h +++ b/instrumentation/events/lttng-module/kvm.h @@ -111,6 +111,7 @@ LTTNG_TRACEPOINT_EVENT(kvm_mmio, || LTTNG_KERNEL_RANGE(3,2,97, 3,3,0) \ || LTTNG_UBUNTU_KERNEL_RANGE(4,13,16,38, 4,14,0,0) \ || LTTNG_DEBIAN_KERNEL_RANGE(4,9,65,0,3,0, 4,10,0,0,0,0) \ + || LTTNG_KERNEL_RANGE(4,12,0, 4,13,0) /* openSUSE */ \ || LTTNG_FEDORA_KERNEL_RANGE(4,14,13,300, 4,15,0,0)) LTTNG_TRACEPOINT_EVENT(kvm_mmio,
