X-Git-Url: https://git.liburcu.org/?a=blobdiff_plain;f=include%2Finstrumentation%2Fevents%2Ftimer.h;h=2fc280c11b8d2ae30aafef2003e073f6279c585d;hb=HEAD;hp=503c5bc2bf7656867698a4c82c732da6a777f3a7;hpb=4f47ccf08dfac3d5db7553eb8b40bdab19764727;p=lttng-modules.git diff --git a/include/instrumentation/events/timer.h b/include/instrumentation/events/timer.h index 503c5bc2..2fc280c1 100644 --- a/include/instrumentation/events/timer.h +++ b/include/instrumentation/events/timer.h @@ -11,17 +11,49 @@ #define _TRACE_TIMER_DEF_ #include #include -#include +#include struct timer_list; #endif /* _TRACE_TIMER_DEF_ */ -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)) +LTTNG_TRACEPOINT_ENUM(hrtimer_mode, + TP_ENUM_VALUES( + ctf_enum_value("HRTIMER_MODE_ABS", HRTIMER_MODE_ABS) + ctf_enum_value("HRTIMER_MODE_REL", HRTIMER_MODE_REL) + ctf_enum_value("HRTIMER_MODE_PINNED", HRTIMER_MODE_PINNED) +#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,16,0)) + ctf_enum_value("HRTIMER_MODE_SOFT", HRTIMER_MODE_SOFT) +#endif +#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,4,0)) + ctf_enum_value("HRTIMER_MODE_HARD", HRTIMER_MODE_HARD) +#endif + + ctf_enum_value("HRTIMER_MODE_ABS_PINNED", HRTIMER_MODE_ABS_PINNED) + ctf_enum_value("HRTIMER_MODE_REL_PINNED", HRTIMER_MODE_REL_PINNED) + +#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,16,0)) + ctf_enum_value("HRTIMER_MODE_ABS_SOFT", HRTIMER_MODE_ABS_SOFT) + ctf_enum_value("HRTIMER_MODE_REL_SOFT", HRTIMER_MODE_REL_SOFT) + + ctf_enum_value("HRTIMER_MODE_ABS_PINNED_SOFT", HRTIMER_MODE_ABS_PINNED_SOFT) + ctf_enum_value("HRTIMER_MODE_REL_PINNED_SOFT", HRTIMER_MODE_REL_PINNED_SOFT) +#endif +#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,4,0)) + ctf_enum_value("HRTIMER_MODE_ABS_HARD", HRTIMER_MODE_ABS_HARD) + ctf_enum_value("HRTIMER_MODE_REL_HARD", HRTIMER_MODE_REL_HARD) + + ctf_enum_value("HRTIMER_MODE_ABS_PINNED_HARD", HRTIMER_MODE_ABS_PINNED_HARD) + ctf_enum_value("HRTIMER_MODE_REL_PINNED_HARD", HRTIMER_MODE_REL_PINNED_HARD) +#endif + ) +) + +#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0)) #define lttng_ktime_get_tv64(kt) (kt) -#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)) */ +#else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0)) */ #define lttng_ktime_get_tv64(kt) ((kt).tv64) -#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)) */ +#endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0)) */ LTTNG_TRACEPOINT_EVENT_CLASS(timer_class, @@ -45,8 +77,7 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(timer_class, timer_init, TP_ARGS(timer) ) -#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)) +#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(6,8,0)) /** * timer_start - called when the timer is started * @timer: pointer to struct timer_list @@ -55,41 +86,46 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(timer_class, timer_init, */ LTTNG_TRACEPOINT_EVENT(timer_start, - TP_PROTO(struct timer_list *timer, unsigned long expires, - unsigned int flags), + TP_PROTO(struct timer_list *timer, unsigned long bucket_expiry), - TP_ARGS(timer, expires, flags), + TP_ARGS(timer, bucket_expiry), TP_FIELDS( ctf_integer_hex(void *, timer, timer) ctf_integer_hex(void *, function, timer->function) - ctf_integer(unsigned long, expires, expires) + ctf_integer(unsigned long, expires, timer->expires) + ctf_integer(unsigned long, bucket_expiry, bucket_expiry) ctf_integer(unsigned long, now, jiffies) - ctf_integer(unsigned int, flags, flags) + ctf_integer(unsigned int, flags, timer->flags) ) ) -#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,2,0)) */ +#else /** * timer_start - called when the timer is started * @timer: pointer to struct timer_list * @expires: the timers expiry time + * @flags: the timers expiry time */ LTTNG_TRACEPOINT_EVENT(timer_start, - TP_PROTO(struct timer_list *timer, unsigned long expires), + TP_PROTO(struct timer_list *timer, unsigned long expires, + unsigned int flags), - TP_ARGS(timer, expires), + TP_ARGS(timer, expires, flags), TP_FIELDS( 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) ) ) -#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,2,0)) */ +#endif -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,2,0)) +#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,2,0) || \ + LTTNG_KERNEL_RANGE(4,19,312, 4,20,0) || \ + LTTNG_RHEL_KERNEL_RANGE(4,18,0,193,0,0, 4,19,0,0,0,0)) /** * timer_expire_entry - called immediately before the timer callback * @timer: pointer to struct timer_list @@ -176,7 +212,7 @@ LTTNG_TRACEPOINT_EVENT_MAP(hrtimer_init, TP_FIELDS( ctf_integer_hex(void *, hrtimer, hrtimer) ctf_integer(clockid_t, clockid, clockid) - ctf_integer(enum hrtimer_mode, mode, mode) + ctf_enum(hrtimer_mode, unsigned int, mode, mode) ) ) @@ -184,7 +220,7 @@ 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) || \ +#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,16,0) || \ LTTNG_RT_KERNEL_RANGE(4,14,0,0, 4,15,0,0)) LTTNG_TRACEPOINT_EVENT_MAP(hrtimer_start, @@ -201,7 +237,7 @@ LTTNG_TRACEPOINT_EVENT_MAP(hrtimer_start, 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) + ctf_enum(hrtimer_mode, unsigned int, mode, mode) ) ) #else @@ -294,7 +330,7 @@ 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(5,5,0)) +#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,5,0)) LTTNG_TRACEPOINT_EVENT_MAP(itimer_state, timer_itimer_state, @@ -313,7 +349,7 @@ LTTNG_TRACEPOINT_EVENT_MAP(itimer_state, ctf_integer(long, interval_nsec, value->it_interval.tv_nsec) ) ) -#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,11,0)) +#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,11,0)) LTTNG_TRACEPOINT_EVENT_MAP(itimer_state, timer_itimer_state, @@ -332,7 +368,7 @@ LTTNG_TRACEPOINT_EVENT_MAP(itimer_state, ctf_integer(long, interval_usec, value->it_interval.tv_usec) ) ) -#else /* if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,11,0)) */ +#else /* if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,11,0)) */ LTTNG_TRACEPOINT_EVENT_MAP(itimer_state, timer_itimer_state, @@ -351,7 +387,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)) */ +#endif /* #else (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,11,0)) */ /** * itimer_expire - called when itimer expires @@ -359,7 +395,7 @@ 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)) +#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,11,0)) LTTNG_TRACEPOINT_EVENT_MAP(itimer_expire, timer_itimer_expire, @@ -374,7 +410,7 @@ LTTNG_TRACEPOINT_EVENT_MAP(itimer_expire, ctf_integer(unsigned long long, now, now) ) ) -#else /* if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,11,0)) */ +#else /* if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,11,0)) */ LTTNG_TRACEPOINT_EVENT_MAP(itimer_expire, timer_itimer_expire, @@ -389,7 +425,7 @@ LTTNG_TRACEPOINT_EVENT_MAP(itimer_expire, ctf_integer(cputime_t, now, now) ) ) -#endif /* #else (LINUX_VERSION_CODE >= KERNEL_VERSION(4,11,0)) */ +#endif /* #else (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,11,0)) */ #endif /* LTTNG_TRACE_TIMER_H */