X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=instrumentation%2Fevents%2Flttng-module%2Ftimer.h;h=503c5bc2bf7656867698a4c82c732da6a777f3a7;hb=3b4aafcbbef722c5d04f2fe06a47c47d4d23eda0;hp=d62fd250b764fa7fb48f707700e1269c0d189a42;hpb=678dd1c8d1f38ee5fdefafb8451fc544eb743f00;p=lttng-modules.git diff --git a/instrumentation/events/lttng-module/timer.h b/instrumentation/events/lttng-module/timer.h index d62fd250..503c5bc2 100644 --- a/instrumentation/events/lttng-module/timer.h +++ b/instrumentation/events/lttng-module/timer.h @@ -1,10 +1,11 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ #undef TRACE_SYSTEM #define TRACE_SYSTEM timer #if !defined(LTTNG_TRACE_TIMER_H) || defined(TRACE_HEADER_MULTI_READ) #define LTTNG_TRACE_TIMER_H -#include +#include #ifndef _TRACE_TIMER_DEF_ #define _TRACE_TIMER_DEF_ @@ -44,7 +45,8 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(timer_class, timer_init, TP_ARGS(timer) ) -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,2,0)) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,2,0) || \ + LTTNG_RHEL_KERNEL_RANGE(3,10,0,957,0,0, 3,11,0,0,0,0)) /** * timer_start - called when the timer is started * @timer: pointer to struct timer_list @@ -87,6 +89,27 @@ LTTNG_TRACEPOINT_EVENT(timer_start, ) #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,2,0)) */ +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,2,0)) +/** + * timer_expire_entry - called immediately before the timer callback + * @timer: pointer to struct timer_list + * + * Allows to determine the timer latency. + */ +LTTNG_TRACEPOINT_EVENT(timer_expire_entry, + + TP_PROTO(struct timer_list *timer, unsigned long baseclk), + + TP_ARGS(timer, baseclk), + + TP_FIELDS( + ctf_integer_hex(void *, timer, timer) + ctf_integer(unsigned long, now, jiffies) + ctf_integer_hex(void *, function, timer->function) + ctf_integer(unsigned long, baseclk, baseclk) + ) +) +#else /** * timer_expire_entry - called immediately before the timer callback * @timer: pointer to struct timer_list @@ -105,6 +128,7 @@ LTTNG_TRACEPOINT_EVENT(timer_expire_entry, ctf_integer_hex(void *, function, timer->function) ) ) +#endif /** * timer_expire_exit - called immediately after the timer callback returns @@ -160,6 +184,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, @@ -177,6 +222,7 @@ LTTNG_TRACEPOINT_EVENT_MAP(hrtimer_start, lttng_ktime_get_tv64(hrtimer_get_softexpires(hrtimer))) ) ) +#endif /** * htimmer_expire_entry - called immediately before the hrtimer callback @@ -248,7 +294,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)) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,5,0)) +LTTNG_TRACEPOINT_EVENT_MAP(itimer_state, + + timer_itimer_state, + + TP_PROTO(int which, const struct itimerspec64 *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_nsec, value->it_value.tv_nsec) + ctf_integer(long, interval_sec, value->it_interval.tv_sec) + ctf_integer(long, interval_nsec, value->it_interval.tv_nsec) + ) +) +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,11,0)) LTTNG_TRACEPOINT_EVENT_MAP(itimer_state, timer_itimer_state, @@ -329,4 +394,4 @@ LTTNG_TRACEPOINT_EVENT_MAP(itimer_expire, #endif /* LTTNG_TRACE_TIMER_H */ /* This part must be outside protection */ -#include +#include