[lttng-dev] [PATCH lttng-modules] Fix: update rcu instrumentation for v4.16
Michael Jeanson
mjeanson at efficios.com
Mon Feb 12 12:32:25 EST 2018
See upstream commits :
commit dec98900eae1e22467182e58688abe5fae98bd5f
Author: Paul E. McKenney <paulmck at linux.vnet.ibm.com>
Date: Wed Oct 4 16:24:29 2017 -0700
rcu: Add ->dynticks field to rcu_dyntick trace event
commit 84585aa8b6ad24e5bdfba9db4a320a6aeed192ab
Author: Paul E. McKenney <paulmck at linux.vnet.ibm.com>
Date: Wed Oct 4 15:55:16 2017 -0700
rcu: Shrink ->dynticks_{nmi_,}nesting from long long to long
Because the ->dynticks_nesting field now only contains the process-based
nesting level instead of a value encoding both the process nesting level
and the irq "nesting" level, we no longer need a long long, even on
32-bit systems. This commit therefore changes both the ->dynticks_nesting
and ->dynticks_nmi_nesting fields to long.
Signed-off-by: Michael Jeanson <mjeanson at efficios.com>
---
instrumentation/events/lttng-module/rcu.h | 44 ++++++++++++++++++++++++++-----
1 file changed, 38 insertions(+), 6 deletions(-)
diff --git a/instrumentation/events/lttng-module/rcu.h b/instrumentation/events/lttng-module/rcu.h
index 869de08..0e33c78 100644
--- a/instrumentation/events/lttng-module/rcu.h
+++ b/instrumentation/events/lttng-module/rcu.h
@@ -220,31 +220,63 @@ LTTNG_TRACEPOINT_EVENT(rcu_fqs,
* events use the upper bits of each number, while interrupt-related
* events use the lower bits.
*/
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,16,0))
LTTNG_TRACEPOINT_EVENT(rcu_dyntick,
+ TP_PROTO(const char *polarity, long oldnesting, long newnesting, atomic_t dynticks),
+
+ TP_ARGS(polarity, oldnesting, newnesting, dynticks),
+
+ TP_FIELDS(
+ ctf_string(polarity, polarity)
+ ctf_integer(long, oldnesting, oldnesting)
+ ctf_integer(long, newnesting, newnesting)
+ ctf_integer(int, dynticks, atomic_read(&dynticks))
+ )
+)
+
+#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
+LTTNG_TRACEPOINT_EVENT(rcu_dyntick,
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
TP_PROTO(const char *polarity, long long oldnesting, long long newnesting),
TP_ARGS(polarity, oldnesting, newnesting),
+
+ TP_FIELDS(
+ ctf_string(polarity, polarity)
+ ctf_integer(long long, oldnesting, oldnesting)
+ ctf_integer(long long, newnesting, newnesting)
+ )
+)
+
+
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
+LTTNG_TRACEPOINT_EVENT(rcu_dyntick,
+
TP_PROTO(char *polarity, long long oldnesting, long long newnesting),
TP_ARGS(polarity, oldnesting, newnesting),
+
+ TP_FIELDS(
+ ctf_string(polarity, polarity)
+ ctf_integer(long long, oldnesting, oldnesting)
+ ctf_integer(long long, newnesting, newnesting)
+ )
+)
+
#else
+LTTNG_TRACEPOINT_EVENT(rcu_dyntick,
+
TP_PROTO(char *polarity),
TP_ARGS(polarity),
-#endif
TP_FIELDS(
ctf_string(polarity, polarity)
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
- ctf_integer(long long, oldnesting, oldnesting)
- ctf_integer(long long, newnesting, newnesting)
-#endif
)
)
+#endif
+
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
/*
--
2.7.4
More information about the lttng-dev
mailing list