| 1 |
|
| 2 | #undef TRACE_SYSTEM
|
| 3 | #define TRACE_SYSTEM alarmtimer
|
| 4 |
|
| 5 | #if !defined(_TRACE_ALARMTIMER_H) || defined(TRACE_HEADER_MULTI_READ)
|
| 6 | #define _TRACE_ALARMTIMER_H
|
| 7 |
|
| 8 | #include <linux/alarmtimer.h>
|
| 9 | #include <linux/rtc.h>
|
| 10 | #include <linux/tracepoint.h>
|
| 11 |
|
| 12 | TRACE_DEFINE_ENUM(ALARM_REALTIME);
|
| 13 | TRACE_DEFINE_ENUM(ALARM_BOOTTIME);
|
| 14 | TRACE_DEFINE_ENUM(ALARM_REALTIME_FREEZER);
|
| 15 | TRACE_DEFINE_ENUM(ALARM_BOOTTIME_FREEZER);
|
| 16 |
|
| 17 | #define show_alarm_type(type) __print_flags(type, " | ", \
|
| 18 | { 1 << ALARM_REALTIME, "REALTIME" }, \
|
| 19 | { 1 << ALARM_BOOTTIME, "BOOTTIME" }, \
|
| 20 | { 1 << ALARM_REALTIME_FREEZER, "REALTIME Freezer" }, \
|
| 21 | { 1 << ALARM_BOOTTIME_FREEZER, "BOOTTIME Freezer" })
|
| 22 |
|
| 23 | #ifdef CONFIG_RTC_CLASS
|
| 24 | TRACE_EVENT(alarmtimer_suspend,
|
| 25 |
|
| 26 | TP_PROTO(ktime_t expires, int flag),
|
| 27 |
|
| 28 | TP_ARGS(expires, flag),
|
| 29 |
|
| 30 | TP_STRUCT__entry(
|
| 31 | __field(s64, expires)
|
| 32 | __field(unsigned char, alarm_type)
|
| 33 | ),
|
| 34 |
|
| 35 | TP_fast_assign(
|
| 36 | __entry->expires = expires;
|
| 37 | __entry->alarm_type = flag;
|
| 38 | ),
|
| 39 |
|
| 40 | TP_printk("alarmtimer type:%s expires:%llu",
|
| 41 | show_alarm_type((1 << __entry->alarm_type)),
|
| 42 | __entry->expires
|
| 43 | )
|
| 44 | );
|
| 45 | #endif
|
| 46 |
|
| 47 | DECLARE_EVENT_CLASS(alarm_class,
|
| 48 |
|
| 49 | TP_PROTO(struct alarm *alarm, ktime_t now),
|
| 50 |
|
| 51 | TP_ARGS(alarm, now),
|
| 52 |
|
| 53 | TP_STRUCT__entry(
|
| 54 | __field(void *, alarm)
|
| 55 | __field(unsigned char, alarm_type)
|
| 56 | __field(s64, expires)
|
| 57 | __field(s64, now)
|
| 58 | ),
|
| 59 |
|
| 60 | TP_fast_assign(
|
| 61 | __entry->alarm = alarm;
|
| 62 | __entry->alarm_type = alarm->type;
|
| 63 | __entry->expires = alarm->node.expires;
|
| 64 | __entry->now = now;
|
| 65 | ),
|
| 66 |
|
| 67 | TP_printk("alarmtimer:%p type:%s expires:%llu now:%llu",
|
| 68 | __entry->alarm,
|
| 69 | show_alarm_type((1 << __entry->alarm_type)),
|
| 70 | __entry->expires,
|
| 71 | __entry->now
|
| 72 | )
|
| 73 | );
|
| 74 |
|
| 75 | DEFINE_EVENT(alarm_class, alarmtimer_fired,
|
| 76 |
|
| 77 | TP_PROTO(struct alarm *alarm, ktime_t now),
|
| 78 |
|
| 79 | TP_ARGS(alarm, now)
|
| 80 | );
|
| 81 |
|
| 82 | DEFINE_EVENT(alarm_class, alarmtimer_start,
|
| 83 |
|
| 84 | TP_PROTO(struct alarm *alarm, ktime_t now),
|
| 85 |
|
| 86 | TP_ARGS(alarm, now)
|
| 87 | );
|
| 88 |
|
| 89 | DEFINE_EVENT(alarm_class, alarmtimer_cancel,
|
| 90 |
|
| 91 | TP_PROTO(struct alarm *alarm, ktime_t now),
|
| 92 |
|
| 93 | TP_ARGS(alarm, now)
|
| 94 | );
|
| 95 |
|
| 96 | #endif
|
| 97 |
|
| 98 |
|
| 99 | #include <trace/define_trace.h>
|