mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-21 16:07:57 +07:00
2456e85535
ktime is a union because the initial implementation stored the time in scalar nanoseconds on 64 bit machine and in a endianess optimized timespec variant for 32bit machines. The Y2038 cleanup removed the timespec variant and switched everything to scalar nanoseconds. The union remained, but become completely pointless. Get rid of the union and just keep ktime_t as simple typedef of type s64. The conversion was done with coccinelle and some manual mopping up. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Cc: Peter Zijlstra <peterz@infradead.org>
97 lines
2.0 KiB
C
97 lines
2.0 KiB
C
#undef TRACE_SYSTEM
|
|
#define TRACE_SYSTEM alarmtimer
|
|
|
|
#if !defined(_TRACE_ALARMTIMER_H) || defined(TRACE_HEADER_MULTI_READ)
|
|
#define _TRACE_ALARMTIMER_H
|
|
|
|
#include <linux/alarmtimer.h>
|
|
#include <linux/rtc.h>
|
|
#include <linux/tracepoint.h>
|
|
|
|
TRACE_DEFINE_ENUM(ALARM_REALTIME);
|
|
TRACE_DEFINE_ENUM(ALARM_BOOTTIME);
|
|
TRACE_DEFINE_ENUM(ALARM_REALTIME_FREEZER);
|
|
TRACE_DEFINE_ENUM(ALARM_BOOTTIME_FREEZER);
|
|
|
|
#define show_alarm_type(type) __print_flags(type, " | ", \
|
|
{ 1 << ALARM_REALTIME, "REALTIME" }, \
|
|
{ 1 << ALARM_BOOTTIME, "BOOTTIME" }, \
|
|
{ 1 << ALARM_REALTIME_FREEZER, "REALTIME Freezer" }, \
|
|
{ 1 << ALARM_BOOTTIME_FREEZER, "BOOTTIME Freezer" })
|
|
|
|
TRACE_EVENT(alarmtimer_suspend,
|
|
|
|
TP_PROTO(ktime_t expires, int flag),
|
|
|
|
TP_ARGS(expires, flag),
|
|
|
|
TP_STRUCT__entry(
|
|
__field(s64, expires)
|
|
__field(unsigned char, alarm_type)
|
|
),
|
|
|
|
TP_fast_assign(
|
|
__entry->expires = expires;
|
|
__entry->alarm_type = flag;
|
|
),
|
|
|
|
TP_printk("alarmtimer type:%s expires:%llu",
|
|
show_alarm_type((1 << __entry->alarm_type)),
|
|
__entry->expires
|
|
)
|
|
);
|
|
|
|
DECLARE_EVENT_CLASS(alarm_class,
|
|
|
|
TP_PROTO(struct alarm *alarm, ktime_t now),
|
|
|
|
TP_ARGS(alarm, now),
|
|
|
|
TP_STRUCT__entry(
|
|
__field(void *, alarm)
|
|
__field(unsigned char, alarm_type)
|
|
__field(s64, expires)
|
|
__field(s64, now)
|
|
),
|
|
|
|
TP_fast_assign(
|
|
__entry->alarm = alarm;
|
|
__entry->alarm_type = alarm->type;
|
|
__entry->expires = alarm->node.expires;
|
|
__entry->now = now;
|
|
),
|
|
|
|
TP_printk("alarmtimer:%p type:%s expires:%llu now:%llu",
|
|
__entry->alarm,
|
|
show_alarm_type((1 << __entry->alarm_type)),
|
|
__entry->expires,
|
|
__entry->now
|
|
)
|
|
);
|
|
|
|
DEFINE_EVENT(alarm_class, alarmtimer_fired,
|
|
|
|
TP_PROTO(struct alarm *alarm, ktime_t now),
|
|
|
|
TP_ARGS(alarm, now)
|
|
);
|
|
|
|
DEFINE_EVENT(alarm_class, alarmtimer_start,
|
|
|
|
TP_PROTO(struct alarm *alarm, ktime_t now),
|
|
|
|
TP_ARGS(alarm, now)
|
|
);
|
|
|
|
DEFINE_EVENT(alarm_class, alarmtimer_cancel,
|
|
|
|
TP_PROTO(struct alarm *alarm, ktime_t now),
|
|
|
|
TP_ARGS(alarm, now)
|
|
);
|
|
|
|
#endif /* _TRACE_ALARMTIMER_H */
|
|
|
|
/* This part must be outside protection */
|
|
#include <trace/define_trace.h>
|