mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-05 16:54:27 +00:00

The trace event alarmtimer_suspend is only called when RTC_CLASS is defined. As every event created can create up to 5K of text and meta data regardless if it is called or not it should not be created and waste memory. Hide the event when CONFIG_RTC_CLASS is not defined. Cc: Masami Hiramatsu <mhiramat@kernel.org> Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> Cc: Peter Zijlstra <peterz@infradead.org> Link: https://lore.kernel.org/20250612095828.6d75dfa3@batman.local.home Acked-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
99 lines
2.1 KiB
C
99 lines
2.1 KiB
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
#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" })
|
|
|
|
#ifdef CONFIG_RTC_CLASS
|
|
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
|
|
)
|
|
);
|
|
#endif /* CONFIG_RTC_CLASS */
|
|
|
|
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>
|