1 /* SPDX-License-Identifier: GPL-2.0-only */
3 #define TRACE_SYSTEM power
5 #if !defined(LTTNG_TRACE_POWER_H) || defined(TRACE_HEADER_MULTI_READ)
6 #define LTTNG_TRACE_POWER_H
8 #include <probes/lttng-tracepoint-event.h>
9 #include <linux/ktime.h>
11 LTTNG_TRACEPOINT_EVENT_CLASS(power_cpu
,
13 TP_PROTO(unsigned int state
, unsigned int cpu_id
),
15 TP_ARGS(state
, cpu_id
),
18 ctf_integer(u32
, state
, state
)
19 ctf_integer(u32
, cpu_id
, cpu_id
)
23 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(power_cpu
, cpu_idle
,
27 TP_PROTO(unsigned int state
, unsigned int cpu_id
),
29 TP_ARGS(state
, cpu_id
)
32 /* This file can get included multiple times, TRACE_HEADER_MULTI_READ at top */
33 #ifndef _PWR_EVENT_AVOID_DOUBLE_DEFINING
34 #define _PWR_EVENT_AVOID_DOUBLE_DEFINING
36 #define PWR_EVENT_EXIT -1
39 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(power_cpu
, cpu_frequency
,
43 TP_PROTO(unsigned int frequency
, unsigned int cpu_id
),
45 TP_ARGS(frequency
, cpu_id
)
48 LTTNG_TRACEPOINT_EVENT_MAP(machine_suspend
,
50 power_machine_suspend
,
52 TP_PROTO(unsigned int state
),
57 ctf_integer(u32
, state
, state
)
61 LTTNG_TRACEPOINT_EVENT_CLASS(power_wakeup_source
,
63 TP_PROTO(const char *name
, unsigned int state
),
68 ctf_string(name
, name
)
69 ctf_integer(u64
, state
, state
)
73 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(power_wakeup_source
, wakeup_source_activate
,
75 power_wakeup_source_activate
,
77 TP_PROTO(const char *name
, unsigned int state
),
82 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(power_wakeup_source
, wakeup_source_deactivate
,
84 power_wakeup_source_deactivate
,
86 TP_PROTO(const char *name
, unsigned int state
),
92 * The clock events are used for clock enable/disable and for
95 LTTNG_TRACEPOINT_EVENT_CLASS(power_clock
,
97 TP_PROTO(const char *name
, unsigned int state
, unsigned int cpu_id
),
99 TP_ARGS(name
, state
, cpu_id
),
102 ctf_string(name
, name
)
103 ctf_integer(u64
, state
, state
)
104 ctf_integer(u64
, cpu_id
, cpu_id
)
108 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(power_clock
, clock_enable
,
112 TP_PROTO(const char *name
, unsigned int state
, unsigned int cpu_id
),
114 TP_ARGS(name
, state
, cpu_id
)
117 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(power_clock
, clock_disable
,
121 TP_PROTO(const char *name
, unsigned int state
, unsigned int cpu_id
),
123 TP_ARGS(name
, state
, cpu_id
)
126 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(power_clock
, clock_set_rate
,
128 power_clock_set_rate
,
130 TP_PROTO(const char *name
, unsigned int state
, unsigned int cpu_id
),
132 TP_ARGS(name
, state
, cpu_id
)
136 * The power domain events are used for power domains transitions
138 LTTNG_TRACEPOINT_EVENT_CLASS(power_domain
,
140 TP_PROTO(const char *name
, unsigned int state
, unsigned int cpu_id
),
142 TP_ARGS(name
, state
, cpu_id
),
145 ctf_string(name
, name
)
146 ctf_integer(u64
, state
, state
)
147 ctf_integer(u64
, cpu_id
, cpu_id
)
151 LTTNG_TRACEPOINT_EVENT_INSTANCE(power_domain
, power_domain_target
,
153 TP_PROTO(const char *name
, unsigned int state
, unsigned int cpu_id
),
155 TP_ARGS(name
, state
, cpu_id
)
158 #endif /* LTTNG_TRACE_POWER_H */
160 /* This part must be outside protection */
161 #include <probes/define_trace.h>