X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;f=instrumentation%2Fevents%2Flttng-module%2Frcu.h;h=42b2004c638fe3a2f8f19429e858fc98a59c77de;hb=3bc29f0a41b3c803245b845db2e1909042e72e9c;hp=1220fb726b36f45eaee1ca81326c800272373f87;hpb=8e6213127497f61d85c3c8cdd9f2e245b00a734a;p=lttng-modules.git diff --git a/instrumentation/events/lttng-module/rcu.h b/instrumentation/events/lttng-module/rcu.h index 1220fb72..42b2004c 100644 --- a/instrumentation/events/lttng-module/rcu.h +++ b/instrumentation/events/lttng-module/rcu.h @@ -1,10 +1,10 @@ #undef TRACE_SYSTEM #define TRACE_SYSTEM rcu -#if !defined(_TRACE_RCU_H) || defined(TRACE_HEADER_MULTI_READ) -#define _TRACE_RCU_H +#if !defined(LTTNG_TRACE_RCU_H) || defined(TRACE_HEADER_MULTI_READ) +#define LTTNG_TRACE_RCU_H -#include +#include "../../../probes/lttng-tracepoint-event.h" #include /* @@ -18,7 +18,7 @@ * An "@" character within "" is a comment character: Data * reduction scripts will ignore the "@" and the remainder of the line. */ -TRACE_EVENT(rcu_utilization, +LTTNG_TRACEPOINT_EVENT(rcu_utilization, #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) TP_PROTO(const char *s), @@ -52,9 +52,13 @@ TRACE_EVENT(rcu_utilization, * and "cpuofl", respectively), and a CPU being kicked for being too * long in dyntick-idle mode ("kick"). */ -TRACE_EVENT(rcu_grace_period, +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_PROTO(char *rcuname, unsigned long gpnum, char *gpevent), +#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) */ TP_ARGS(rcuname, gpnum, gpevent), @@ -81,10 +85,15 @@ TRACE_EVENT(rcu_grace_period, * 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. */ -TRACE_EVENT(rcu_grace_period_init, +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_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), @@ -117,9 +126,13 @@ TRACE_EVENT(rcu_grace_period_init, * include SRCU), the grace-period number that the task is blocking * (the current or the next), and the task's PID. */ -TRACE_EVENT(rcu_preempt_task, +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_PROTO(char *rcuname, int pid, unsigned long gpnum), +#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) */ TP_ARGS(rcuname, pid, gpnum), @@ -144,9 +157,13 @@ TRACE_EVENT(rcu_preempt_task, * read-side critical section exiting that critical section. Track the * type of RCU (which one day might include SRCU) and the task's PID. */ -TRACE_EVENT(rcu_unlock_preempted_task, +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_PROTO(char *rcuname, unsigned long gpnum, int pid), +#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) */ TP_ARGS(rcuname, gpnum, pid), @@ -173,11 +190,17 @@ TRACE_EVENT(rcu_unlock_preempted_task, * whether there are any blocked tasks blocking the current grace period. * All but the type of RCU are extracted from the rcu_node structure. */ -TRACE_EVENT(rcu_quiescent_state_report, +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_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), @@ -217,9 +240,13 @@ TRACE_EVENT(rcu_quiescent_state_report, * or "kick" when kicking a CPU that has been in dyntick-idle mode for * too long. */ -TRACE_EVENT(rcu_fqs, +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_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), @@ -257,9 +284,14 @@ TRACE_EVENT(rcu_fqs, * events use the upper bits of each number, while interrupt-related * events use the lower bits. */ -TRACE_EVENT(rcu_dyntick, +LTTNG_TRACEPOINT_EVENT(rcu_dyntick, -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)) + +#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), +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)) TP_PROTO(char *polarity, long long oldnesting, long long newnesting), TP_ARGS(polarity, oldnesting, newnesting), @@ -316,9 +348,13 @@ TRACE_EVENT(rcu_dyntick, * "Demigrate": Timer fired on wrong CPU, woke up correct CPU. * "Cleanup after idle": Idle exited, timer canceled. */ -TRACE_EVENT(rcu_prep_idle, +LTTNG_TRACEPOINT_EVENT(rcu_prep_idle, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) + TP_PROTO(const char *reason), +#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) */ TP_PROTO(char *reason), +#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) */ TP_ARGS(reason), @@ -341,9 +377,14 @@ TRACE_EVENT(rcu_prep_idle, * number of lazy callbacks queued, and the fourth element is the * total number of callbacks queued. */ -TRACE_EVENT(rcu_callback, +LTTNG_TRACEPOINT_EVENT(rcu_callback, -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0)) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) + TP_PROTO(const char *rcuname, struct rcu_head *rhp, long qlen_lazy, + long qlen), + + TP_ARGS(rcuname, rhp, qlen_lazy, qlen), +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0)) TP_PROTO(char *rcuname, struct rcu_head *rhp, long qlen_lazy, long qlen), @@ -393,9 +434,15 @@ TRACE_EVENT(rcu_callback, * the fourth argument is the number of lazy callbacks queued, and the * fifth argument is the total number of callbacks queued. */ -TRACE_EVENT(rcu_kfree_callback, +LTTNG_TRACEPOINT_EVENT(rcu_kfree_callback, -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0)) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) + TP_PROTO(const char *rcuname, struct rcu_head *rhp, unsigned long offset, + long qlen_lazy, long qlen), + + TP_ARGS(rcuname, rhp, offset, qlen_lazy, qlen), +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0)) TP_PROTO(char *rcuname, struct rcu_head *rhp, unsigned long offset, long qlen_lazy, long qlen), @@ -445,9 +492,13 @@ TRACE_EVENT(rcu_kfree_callback, * the total number of callbacks queued, and the fourth argument is * the current RCU-callback batch limit. */ -TRACE_EVENT(rcu_batch_start, +LTTNG_TRACEPOINT_EVENT(rcu_batch_start, -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0)) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) + TP_PROTO(const char *rcuname, long qlen_lazy, long qlen, long blimit), + + TP_ARGS(rcuname, qlen_lazy, qlen, blimit), +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0)) TP_PROTO(char *rcuname, long qlen_lazy, long qlen, long blimit), TP_ARGS(rcuname, qlen_lazy, qlen, blimit), @@ -502,9 +553,13 @@ TRACE_EVENT(rcu_batch_start, * The first argument is the type of RCU, and the second argument is * a pointer to the RCU callback itself. */ -TRACE_EVENT(rcu_invoke_callback, +LTTNG_TRACEPOINT_EVENT(rcu_invoke_callback, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) + TP_PROTO(const char *rcuname, struct rcu_head *rhp), +#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) */ TP_PROTO(char *rcuname, struct rcu_head *rhp), +#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) */ TP_ARGS(rcuname, rhp), @@ -531,9 +586,13 @@ TRACE_EVENT(rcu_invoke_callback, * is the offset of the callback within the enclosing RCU-protected * data structure. */ -TRACE_EVENT(rcu_invoke_kfree_callback, +LTTNG_TRACEPOINT_EVENT(rcu_invoke_kfree_callback, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) + TP_PROTO(const char *rcuname, struct rcu_head *rhp, unsigned long offset), +#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) */ TP_PROTO(char *rcuname, struct rcu_head *rhp, unsigned long offset), +#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) */ TP_ARGS(rcuname, rhp, offset), @@ -564,9 +623,19 @@ TRACE_EVENT(rcu_invoke_kfree_callback, * and the sixth argument (risk) is the return value from * rcu_is_callbacks_kthread(). */ -TRACE_EVENT(rcu_batch_end, +LTTNG_TRACEPOINT_EVENT(rcu_batch_end, -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,13,0)) + TP_PROTO(const char *rcuname, int callbacks_invoked, + char cb, char nr, char iit, char risk), + + TP_ARGS(rcuname, callbacks_invoked, cb, nr, iit, risk), +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) + TP_PROTO(const char *rcuname, int callbacks_invoked, + bool cb, bool nr, bool iit, bool risk), + + TP_ARGS(rcuname, callbacks_invoked, cb, nr, iit, risk), +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)) TP_PROTO(char *rcuname, int callbacks_invoked, bool cb, bool nr, bool iit, bool risk), @@ -580,7 +649,12 @@ TRACE_EVENT(rcu_batch_end, TP_STRUCT__entry( __string(rcuname, rcuname) __field(int, callbacks_invoked) -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,13,0)) + __field(char, cb) + __field(char, nr) + __field(char, iit) + __field(char, risk) +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)) __field(bool, cb) __field(bool, nr) __field(bool, iit) @@ -618,9 +692,14 @@ TRACE_EVENT(rcu_batch_end, * of the RCU flavor from rcutorture's viewpoint and the second argument * is the callback address. */ -TRACE_EVENT(rcu_torture_read, +LTTNG_TRACEPOINT_EVENT(rcu_torture_read, -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0)) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) + TP_PROTO(const char *rcutorturename, struct rcu_head *rhp, + unsigned long secs, unsigned long c_old, unsigned long c), + + TP_ARGS(rcutorturename, rhp, secs, c_old, c), +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0)) TP_PROTO(char *rcutorturename, struct rcu_head *rhp, unsigned long secs, unsigned long c_old, unsigned long c), @@ -680,9 +759,13 @@ TRACE_EVENT(rcu_torture_read, * The "cpu" argument is the CPU or -1 if meaningless, the "cnt" argument * is the count of remaining callbacks, and "done" is the piggybacking count. */ -TRACE_EVENT(rcu_barrier, +LTTNG_TRACEPOINT_EVENT(rcu_barrier, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) + TP_PROTO(const char *rcuname, const char *s, int cpu, int cnt, unsigned long done), +#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) */ TP_PROTO(char *rcuname, char *s, int cpu, int cnt, unsigned long done), +#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) */ TP_ARGS(rcuname, s, cpu, cnt, done), @@ -757,7 +840,7 @@ TRACE_EVENT(rcu_barrier, #endif #endif /* #else #ifdef CONFIG_RCU_TRACE */ -#endif /* _TRACE_RCU_H */ +#endif /* LTTNG_TRACE_RCU_H */ /* This part must be outside protection */ #include "../../../probes/define_trace.h"