X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=instrumentation%2Fevents%2Flttng-module%2Ftimer.h;h=6f0cb7f333fdf5bd5bade568df9e4010bdf8fc7d;hb=5a32ce54ebf73b297a0bbccfe88c36994e15dcc4;hp=8a813ebf0cecddfeee8f8d5fa7de7a6f200fee35;hpb=32328e6c9b05660f5290e86a284f6c22fc547748;p=lttng-modules.git diff --git a/instrumentation/events/lttng-module/timer.h b/instrumentation/events/lttng-module/timer.h index 8a813ebf..6f0cb7f3 100644 --- a/instrumentation/events/lttng-module/timer.h +++ b/instrumentation/events/lttng-module/timer.h @@ -4,7 +4,7 @@ #if !defined(LTTNG_TRACE_TIMER_H) || defined(TRACE_HEADER_MULTI_READ) #define LTTNG_TRACE_TIMER_H -#include "../../../probes/lttng-tracepoint-event.h" +#include #ifndef _TRACE_TIMER_DEF_ #define _TRACE_TIMER_DEF_ @@ -16,6 +16,12 @@ struct timer_list; #endif /* _TRACE_TIMER_DEF_ */ +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)) +#define lttng_ktime_get_tv64(kt) (kt) +#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)) */ +#define lttng_ktime_get_tv64(kt) ((kt).tv64) +#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)) */ + LTTNG_TRACEPOINT_EVENT_CLASS(timer_class, TP_PROTO(struct timer_list *timer), @@ -23,7 +29,7 @@ LTTNG_TRACEPOINT_EVENT_CLASS(timer_class, TP_ARGS(timer), TP_FIELDS( - ctf_integer(void *, timer, timer) + ctf_integer_hex(void *, timer, timer) ) ) @@ -53,8 +59,8 @@ LTTNG_TRACEPOINT_EVENT(timer_start, TP_ARGS(timer, expires, flags), TP_FIELDS( - ctf_integer(void *, timer, timer) - ctf_integer(void *, function, timer->function) + ctf_integer_hex(void *, timer, timer) + ctf_integer_hex(void *, function, timer->function) ctf_integer(unsigned long, expires, expires) ctf_integer(unsigned long, now, jiffies) ctf_integer(unsigned int, flags, flags) @@ -73,8 +79,8 @@ LTTNG_TRACEPOINT_EVENT(timer_start, TP_ARGS(timer, expires), TP_FIELDS( - ctf_integer(void *, timer, timer) - ctf_integer(void *, function, timer->function) + ctf_integer_hex(void *, timer, timer) + ctf_integer_hex(void *, function, timer->function) ctf_integer(unsigned long, expires, expires) ctf_integer(unsigned long, now, jiffies) ) @@ -94,9 +100,9 @@ LTTNG_TRACEPOINT_EVENT(timer_expire_entry, TP_ARGS(timer), TP_FIELDS( - ctf_integer(void *, timer, timer) + ctf_integer_hex(void *, timer, timer) ctf_integer(unsigned long, now, jiffies) - ctf_integer(void *, function, timer->function) + ctf_integer_hex(void *, function, timer->function) ) ) @@ -144,7 +150,7 @@ LTTNG_TRACEPOINT_EVENT_MAP(hrtimer_init, TP_ARGS(hrtimer, clockid, mode), TP_FIELDS( - ctf_integer(void *, hrtimer, hrtimer) + ctf_integer_hex(void *, hrtimer, hrtimer) ctf_integer(clockid_t, clockid, clockid) ctf_integer(enum hrtimer_mode, mode, mode) ) @@ -154,6 +160,27 @@ LTTNG_TRACEPOINT_EVENT_MAP(hrtimer_init, * hrtimer_start - called when the hrtimer is started * @timer: pointer to struct hrtimer */ +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,16,0) || \ + LTTNG_RT_KERNEL_RANGE(4,14,0,0, 4,15,0,0)) +LTTNG_TRACEPOINT_EVENT_MAP(hrtimer_start, + + timer_hrtimer_start, + + TP_PROTO(struct hrtimer *hrtimer, enum hrtimer_mode mode), + + TP_ARGS(hrtimer, mode), + + TP_FIELDS( + ctf_integer_hex(void *, hrtimer, hrtimer) + ctf_integer_hex(void *, function, hrtimer->function) + ctf_integer(s64, expires, + lttng_ktime_get_tv64(hrtimer_get_expires(hrtimer))) + ctf_integer(s64, softexpires, + lttng_ktime_get_tv64(hrtimer_get_softexpires(hrtimer))) + ctf_integer(enum hrtimer_mode, mode, mode) + ) +) +#else LTTNG_TRACEPOINT_EVENT_MAP(hrtimer_start, timer_hrtimer_start, @@ -163,12 +190,15 @@ LTTNG_TRACEPOINT_EVENT_MAP(hrtimer_start, TP_ARGS(hrtimer), TP_FIELDS( - ctf_integer(void *, hrtimer, hrtimer) - ctf_integer(void *, function, hrtimer->function) - ctf_integer(s64, expires, hrtimer_get_expires(hrtimer).tv64) - ctf_integer(s64, softexpires, hrtimer_get_softexpires(hrtimer).tv64) + ctf_integer_hex(void *, hrtimer, hrtimer) + ctf_integer_hex(void *, function, hrtimer->function) + ctf_integer(s64, expires, + lttng_ktime_get_tv64(hrtimer_get_expires(hrtimer))) + ctf_integer(s64, softexpires, + lttng_ktime_get_tv64(hrtimer_get_softexpires(hrtimer))) ) ) +#endif /** * htimmer_expire_entry - called immediately before the hrtimer callback @@ -187,9 +217,9 @@ LTTNG_TRACEPOINT_EVENT_MAP(hrtimer_expire_entry, TP_ARGS(hrtimer, now), TP_FIELDS( - ctf_integer(void *, hrtimer, hrtimer) - ctf_integer(s64, now, now->tv64) - ctf_integer(void *, function, hrtimer->function) + ctf_integer_hex(void *, hrtimer, hrtimer) + ctf_integer(s64, now, lttng_ktime_get_tv64(*now)) + ctf_integer_hex(void *, function, hrtimer->function) ) ) @@ -200,7 +230,7 @@ LTTNG_TRACEPOINT_EVENT_CLASS(timer_hrtimer_class, TP_ARGS(hrtimer), TP_FIELDS( - ctf_integer(void *, hrtimer, hrtimer) + ctf_integer_hex(void *, hrtimer, hrtimer) ) ) @@ -240,6 +270,26 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(timer_hrtimer_class, hrtimer_cancel, * zero, otherwise it is started * @expires: the itimers expiry time */ +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,11,0)) +LTTNG_TRACEPOINT_EVENT_MAP(itimer_state, + + timer_itimer_state, + + TP_PROTO(int which, const struct itimerval *const value, + unsigned long long expires), + + TP_ARGS(which, value, expires), + + TP_FIELDS( + ctf_integer(int, which, which) + ctf_integer(unsigned long long, expires, expires) + ctf_integer(long, value_sec, value->it_value.tv_sec) + ctf_integer(long, value_usec, value->it_value.tv_usec) + ctf_integer(long, interval_sec, value->it_interval.tv_sec) + ctf_integer(long, interval_usec, value->it_interval.tv_usec) + ) +) +#else /* if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,11,0)) */ LTTNG_TRACEPOINT_EVENT_MAP(itimer_state, timer_itimer_state, @@ -258,6 +308,7 @@ LTTNG_TRACEPOINT_EVENT_MAP(itimer_state, ctf_integer(long, interval_usec, value->it_interval.tv_usec) ) ) +#endif /* #else (LINUX_VERSION_CODE >= KERNEL_VERSION(4,11,0)) */ /** * itimer_expire - called when itimer expires @@ -265,6 +316,22 @@ LTTNG_TRACEPOINT_EVENT_MAP(itimer_state, * @pid: pid of the process which owns the timer * @now: current time, used to calculate the latency of itimer */ +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,11,0)) +LTTNG_TRACEPOINT_EVENT_MAP(itimer_expire, + + timer_itimer_expire, + + TP_PROTO(int which, struct pid *pid, unsigned long long now), + + TP_ARGS(which, pid, now), + + TP_FIELDS( + ctf_integer(int , which, which) + ctf_integer(pid_t, pid, pid_nr(pid)) + ctf_integer(unsigned long long, now, now) + ) +) +#else /* if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,11,0)) */ LTTNG_TRACEPOINT_EVENT_MAP(itimer_expire, timer_itimer_expire, @@ -279,8 +346,9 @@ LTTNG_TRACEPOINT_EVENT_MAP(itimer_expire, ctf_integer(cputime_t, now, now) ) ) +#endif /* #else (LINUX_VERSION_CODE >= KERNEL_VERSION(4,11,0)) */ #endif /* LTTNG_TRACE_TIMER_H */ /* This part must be outside protection */ -#include "../../../probes/define_trace.h" +#include