Fix: update RCU instrumentation for 4.17
[lttng-modules.git] / instrumentation / events / lttng-module / rcu.h
index edece667209bafdfa936e083abfcd18f95230a92..7760bd6e7673cc4cc9d63df4492fee0e77a51c84 100644 (file)
@@ -4,7 +4,7 @@
 #if !defined(LTTNG_TRACE_RCU_H) || defined(TRACE_HEADER_MULTI_READ)
 #define LTTNG_TRACE_RCU_H
 
-#include "../../../probes/lttng-tracepoint-event.h"
+#include <probes/lttng-tracepoint-event.h>
 #include <linux/version.h>
 
 /*
@@ -220,31 +220,60 @@ 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))
 /*
@@ -583,7 +612,9 @@ LTTNG_TRACEPOINT_EVENT(rcu_barrier,
                                         grplo, grphi, gp_tasks) do { } \
        while (0)
 #define trace_rcu_fqs(rcuname, gpnum, cpu, qsevent) do { } while (0)
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,17,0))
+#define trace_rcu_dyntick(polarity, oldnesting, newnesting, dyntick) do { } while (0)
+#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
 #define trace_rcu_dyntick(polarity, oldnesting, newnesting) do { } while (0)
 #else
 #define trace_rcu_dyntick(polarity) do { } while (0)
@@ -624,4 +655,4 @@ LTTNG_TRACEPOINT_EVENT(rcu_barrier,
 #endif /* LTTNG_TRACE_RCU_H */
 
 /* This part must be outside protection */
-#include "../../../probes/define_trace.h"
+#include <probes/define_trace.h>
This page took 0.023769 seconds and 4 git commands to generate.