Fix: scsi: sd: Atomic write support added in 6.11-rc1
[lttng-modules.git] / include / instrumentation / events / power.h
CommitLineData
61baff6e
MJ
1// SPDX-FileCopyrightText: 2012 Paul Woegerer <paul_woegerer@mentor.com>
2//
3// SPDX-License-Identifier: GPL-2.0-only
4
b283666f
PW
5#undef TRACE_SYSTEM
6#define TRACE_SYSTEM power
7
3bc29f0a
MD
8#if !defined(LTTNG_TRACE_POWER_H) || defined(TRACE_HEADER_MULTI_READ)
9#define LTTNG_TRACE_POWER_H
b283666f 10
3b4aafcb 11#include <lttng/tracepoint-event.h>
b283666f 12#include <linux/ktime.h>
5f4c791e 13#include <lttng/kernel-version.h>
b283666f 14
3bc29f0a 15LTTNG_TRACEPOINT_EVENT_CLASS(power_cpu,
b283666f
PW
16
17 TP_PROTO(unsigned int state, unsigned int cpu_id),
18
19 TP_ARGS(state, cpu_id),
20
f127e61e
MD
21 TP_FIELDS(
22 ctf_integer(u32, state, state)
23 ctf_integer(u32, cpu_id, cpu_id)
24 )
b283666f
PW
25)
26
3bc29f0a 27LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(power_cpu, cpu_idle,
9cf29d3e
MD
28
29 power_cpu_idle,
b283666f
PW
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
3bc29f0a 43LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(power_cpu, cpu_frequency,
9cf29d3e
MD
44
45 power_cpu_frequency,
b283666f
PW
46
47 TP_PROTO(unsigned int frequency, unsigned int cpu_id),
48
49 TP_ARGS(frequency, cpu_id)
50)
51
3bc29f0a 52LTTNG_TRACEPOINT_EVENT_MAP(machine_suspend,
9cf29d3e
MD
53
54 power_machine_suspend,
b283666f
PW
55
56 TP_PROTO(unsigned int state),
57
58 TP_ARGS(state),
59
f127e61e
MD
60 TP_FIELDS(
61 ctf_integer(u32, state, state)
62 )
b283666f 63)
7c68b363 64
3bc29f0a 65LTTNG_TRACEPOINT_EVENT_CLASS(power_wakeup_source,
7c68b363
AG
66
67 TP_PROTO(const char *name, unsigned int state),
68
69 TP_ARGS(name, state),
70
f127e61e
MD
71 TP_FIELDS(
72 ctf_string(name, name)
73 ctf_integer(u64, state, state)
74 )
7c68b363
AG
75)
76
3bc29f0a 77LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(power_wakeup_source, wakeup_source_activate,
9cf29d3e
MD
78
79 power_wakeup_source_activate,
7c68b363
AG
80
81 TP_PROTO(const char *name, unsigned int state),
82
83 TP_ARGS(name, state)
84)
85
3bc29f0a 86LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(power_wakeup_source, wakeup_source_deactivate,
9cf29d3e
MD
87
88 power_wakeup_source_deactivate,
7c68b363
AG
89
90 TP_PROTO(const char *name, unsigned int state),
91
92 TP_ARGS(name, state)
93)
7c68b363 94
b283666f
PW
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 */
3bc29f0a 101LTTNG_TRACEPOINT_EVENT_CLASS(power,
b283666f
PW
102
103 TP_PROTO(unsigned int type, unsigned int state, unsigned int cpu_id),
104
105 TP_ARGS(type, state, cpu_id),
106
f127e61e
MD
107 TP_FIELDS(
108 ctf_integer(u64, type, type)
109 ctf_integer(u64, state, state)
f127e61e 110 ctf_integer(u64, cpu_id, cpu_id)
f127e61e 111 )
b283666f
PW
112)
113
3bc29f0a 114LTTNG_TRACEPOINT_EVENT_INSTANCE(power, power_start,
b283666f
PW
115
116 TP_PROTO(unsigned int type, unsigned int state, unsigned int cpu_id),
117
118 TP_ARGS(type, state, cpu_id)
119)
120
3bc29f0a 121LTTNG_TRACEPOINT_EVENT_INSTANCE(power, power_frequency,
b283666f
PW
122
123 TP_PROTO(unsigned int type, unsigned int state, unsigned int cpu_id),
124
125 TP_ARGS(type, state, cpu_id)
126)
127
3bc29f0a 128LTTNG_TRACEPOINT_EVENT(power_end,
b283666f
PW
129
130 TP_PROTO(unsigned int cpu_id),
131
132 TP_ARGS(cpu_id),
133
f127e61e 134 TP_FIELDS(
f127e61e 135 ctf_integer(u64, cpu_id, cpu_id)
f127e61e 136 )
b283666f
PW
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
143enum {
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
154enum {
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 */
162static inline void trace_power_start(u64 type, u64 state, u64 cpuid) {};
163static inline void trace_power_end(u64 cpuid) {};
7c68b363
AG
164static inline void trace_power_start_rcuidle(u64 type, u64 state, u64 cpuid) {};
165static inline void trace_power_end_rcuidle(u64 cpuid) {};
b283666f
PW
166static 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 */
3bc29f0a 175LTTNG_TRACEPOINT_EVENT_CLASS(power_clock,
b283666f
PW
176
177 TP_PROTO(const char *name, unsigned int state, unsigned int cpu_id),
178
179 TP_ARGS(name, state, cpu_id),
180
f127e61e
MD
181 TP_FIELDS(
182 ctf_string(name, name)
183 ctf_integer(u64, state, state)
184 ctf_integer(u64, cpu_id, cpu_id)
185 )
b283666f
PW
186)
187
3bc29f0a 188LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(power_clock, clock_enable,
9cf29d3e
MD
189
190 power_clock_enable,
b283666f
PW
191
192 TP_PROTO(const char *name, unsigned int state, unsigned int cpu_id),
193
194 TP_ARGS(name, state, cpu_id)
195)
196
3bc29f0a 197LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(power_clock, clock_disable,
9cf29d3e
MD
198
199 power_clock_disable,
b283666f
PW
200
201 TP_PROTO(const char *name, unsigned int state, unsigned int cpu_id),
202
203 TP_ARGS(name, state, cpu_id)
204)
205
3bc29f0a 206LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(power_clock, clock_set_rate,
9cf29d3e
MD
207
208 power_clock_set_rate,
b283666f
PW
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 */
3bc29f0a 218LTTNG_TRACEPOINT_EVENT_CLASS(power_domain,
b283666f
PW
219
220 TP_PROTO(const char *name, unsigned int state, unsigned int cpu_id),
221
222 TP_ARGS(name, state, cpu_id),
223
f127e61e
MD
224 TP_FIELDS(
225 ctf_string(name, name)
226 ctf_integer(u64, state, state)
227 ctf_integer(u64, cpu_id, cpu_id)
228 )
b283666f
PW
229)
230
3bc29f0a 231LTTNG_TRACEPOINT_EVENT_INSTANCE(power_domain, power_domain_target,
b283666f
PW
232
233 TP_PROTO(const char *name, unsigned int state, unsigned int cpu_id),
234
235 TP_ARGS(name, state, cpu_id)
236)
7c68b363 237
3bc29f0a 238#endif /* LTTNG_TRACE_POWER_H */
b283666f
PW
239
240/* This part must be outside protection */
3b4aafcb 241#include <lttng/define_trace.h>
This page took 0.07121 seconds and 4 git commands to generate.