Fix: scsi: sd: Atomic write support added in 6.11-rc1
[lttng-modules.git] / include / instrumentation / events / power.h
1 // SPDX-FileCopyrightText: 2012 Paul Woegerer <paul_woegerer@mentor.com>
2 //
3 // SPDX-License-Identifier: GPL-2.0-only
4
5 #undef TRACE_SYSTEM
6 #define TRACE_SYSTEM power
7
8 #if !defined(LTTNG_TRACE_POWER_H) || defined(TRACE_HEADER_MULTI_READ)
9 #define LTTNG_TRACE_POWER_H
10
11 #include <lttng/tracepoint-event.h>
12 #include <linux/ktime.h>
13 #include <lttng/kernel-version.h>
14
15 LTTNG_TRACEPOINT_EVENT_CLASS(power_cpu,
16
17 TP_PROTO(unsigned int state, unsigned int cpu_id),
18
19 TP_ARGS(state, cpu_id),
20
21 TP_FIELDS(
22 ctf_integer(u32, state, state)
23 ctf_integer(u32, cpu_id, cpu_id)
24 )
25 )
26
27 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(power_cpu, cpu_idle,
28
29 power_cpu_idle,
30
31 TP_PROTO(unsigned int state, unsigned int cpu_id),
32
33 TP_ARGS(state, cpu_id)
34 )
35
36 /* This file can get included multiple times, TRACE_HEADER_MULTI_READ at top */
37 #ifndef _PWR_EVENT_AVOID_DOUBLE_DEFINING
38 #define _PWR_EVENT_AVOID_DOUBLE_DEFINING
39
40 #define PWR_EVENT_EXIT -1
41 #endif
42
43 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(power_cpu, cpu_frequency,
44
45 power_cpu_frequency,
46
47 TP_PROTO(unsigned int frequency, unsigned int cpu_id),
48
49 TP_ARGS(frequency, cpu_id)
50 )
51
52 LTTNG_TRACEPOINT_EVENT_MAP(machine_suspend,
53
54 power_machine_suspend,
55
56 TP_PROTO(unsigned int state),
57
58 TP_ARGS(state),
59
60 TP_FIELDS(
61 ctf_integer(u32, state, state)
62 )
63 )
64
65 LTTNG_TRACEPOINT_EVENT_CLASS(power_wakeup_source,
66
67 TP_PROTO(const char *name, unsigned int state),
68
69 TP_ARGS(name, state),
70
71 TP_FIELDS(
72 ctf_string(name, name)
73 ctf_integer(u64, state, state)
74 )
75 )
76
77 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(power_wakeup_source, wakeup_source_activate,
78
79 power_wakeup_source_activate,
80
81 TP_PROTO(const char *name, unsigned int state),
82
83 TP_ARGS(name, state)
84 )
85
86 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(power_wakeup_source, wakeup_source_deactivate,
87
88 power_wakeup_source_deactivate,
89
90 TP_PROTO(const char *name, unsigned int state),
91
92 TP_ARGS(name, state)
93 )
94
95 #ifdef CONFIG_EVENT_POWER_TRACING_DEPRECATED
96
97 /*
98 * The power events are used for cpuidle & suspend (power_start, power_end)
99 * and for cpufreq (power_frequency)
100 */
101 LTTNG_TRACEPOINT_EVENT_CLASS(power,
102
103 TP_PROTO(unsigned int type, unsigned int state, unsigned int cpu_id),
104
105 TP_ARGS(type, state, cpu_id),
106
107 TP_FIELDS(
108 ctf_integer(u64, type, type)
109 ctf_integer(u64, state, state)
110 ctf_integer(u64, cpu_id, cpu_id)
111 )
112 )
113
114 LTTNG_TRACEPOINT_EVENT_INSTANCE(power, power_start,
115
116 TP_PROTO(unsigned int type, unsigned int state, unsigned int cpu_id),
117
118 TP_ARGS(type, state, cpu_id)
119 )
120
121 LTTNG_TRACEPOINT_EVENT_INSTANCE(power, power_frequency,
122
123 TP_PROTO(unsigned int type, unsigned int state, unsigned int cpu_id),
124
125 TP_ARGS(type, state, cpu_id)
126 )
127
128 LTTNG_TRACEPOINT_EVENT(power_end,
129
130 TP_PROTO(unsigned int cpu_id),
131
132 TP_ARGS(cpu_id),
133
134 TP_FIELDS(
135 ctf_integer(u64, cpu_id, cpu_id)
136 )
137 )
138
139 /* Deprecated dummy functions must be protected against multi-declartion */
140 #ifndef _PWR_EVENT_AVOID_DOUBLE_DEFINING_DEPRECATED
141 #define _PWR_EVENT_AVOID_DOUBLE_DEFINING_DEPRECATED
142
143 enum {
144 POWER_NONE = 0,
145 POWER_CSTATE = 1,
146 POWER_PSTATE = 2,
147 };
148 #endif /* _PWR_EVENT_AVOID_DOUBLE_DEFINING_DEPRECATED */
149
150 #else /* CONFIG_EVENT_POWER_TRACING_DEPRECATED */
151
152 #ifndef _PWR_EVENT_AVOID_DOUBLE_DEFINING_DEPRECATED
153 #define _PWR_EVENT_AVOID_DOUBLE_DEFINING_DEPRECATED
154 enum {
155 POWER_NONE = 0,
156 POWER_CSTATE = 1,
157 POWER_PSTATE = 2,
158 };
159
160 /* These dummy declaration have to be ripped out when the deprecated
161 events get removed */
162 static inline void trace_power_start(u64 type, u64 state, u64 cpuid) {};
163 static inline void trace_power_end(u64 cpuid) {};
164 static inline void trace_power_start_rcuidle(u64 type, u64 state, u64 cpuid) {};
165 static inline void trace_power_end_rcuidle(u64 cpuid) {};
166 static inline void trace_power_frequency(u64 type, u64 state, u64 cpuid) {};
167 #endif /* _PWR_EVENT_AVOID_DOUBLE_DEFINING_DEPRECATED */
168
169 #endif /* CONFIG_EVENT_POWER_TRACING_DEPRECATED */
170
171 /*
172 * The clock events are used for clock enable/disable and for
173 * clock rate change
174 */
175 LTTNG_TRACEPOINT_EVENT_CLASS(power_clock,
176
177 TP_PROTO(const char *name, unsigned int state, unsigned int cpu_id),
178
179 TP_ARGS(name, state, cpu_id),
180
181 TP_FIELDS(
182 ctf_string(name, name)
183 ctf_integer(u64, state, state)
184 ctf_integer(u64, cpu_id, cpu_id)
185 )
186 )
187
188 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(power_clock, clock_enable,
189
190 power_clock_enable,
191
192 TP_PROTO(const char *name, unsigned int state, unsigned int cpu_id),
193
194 TP_ARGS(name, state, cpu_id)
195 )
196
197 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(power_clock, clock_disable,
198
199 power_clock_disable,
200
201 TP_PROTO(const char *name, unsigned int state, unsigned int cpu_id),
202
203 TP_ARGS(name, state, cpu_id)
204 )
205
206 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(power_clock, clock_set_rate,
207
208 power_clock_set_rate,
209
210 TP_PROTO(const char *name, unsigned int state, unsigned int cpu_id),
211
212 TP_ARGS(name, state, cpu_id)
213 )
214
215 /*
216 * The power domain events are used for power domains transitions
217 */
218 LTTNG_TRACEPOINT_EVENT_CLASS(power_domain,
219
220 TP_PROTO(const char *name, unsigned int state, unsigned int cpu_id),
221
222 TP_ARGS(name, state, cpu_id),
223
224 TP_FIELDS(
225 ctf_string(name, name)
226 ctf_integer(u64, state, state)
227 ctf_integer(u64, cpu_id, cpu_id)
228 )
229 )
230
231 LTTNG_TRACEPOINT_EVENT_INSTANCE(power_domain, power_domain_target,
232
233 TP_PROTO(const char *name, unsigned int state, unsigned int cpu_id),
234
235 TP_ARGS(name, state, cpu_id)
236 )
237
238 #endif /* LTTNG_TRACE_POWER_H */
239
240 /* This part must be outside protection */
241 #include <lttng/define_trace.h>
This page took 0.037339 seconds and 5 git commands to generate.