Fix: scsi: sd: Atomic write support added in 6.11-rc1
[lttng-modules.git] / include / instrumentation / events / power.h
... / ...
CommitLineData
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
15LTTNG_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
27LTTNG_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
43LTTNG_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
52LTTNG_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
65LTTNG_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
77LTTNG_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
86LTTNG_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 */
101LTTNG_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
114LTTNG_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
121LTTNG_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
128LTTNG_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
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) {};
164static inline void trace_power_start_rcuidle(u64 type, u64 state, u64 cpuid) {};
165static inline void trace_power_end_rcuidle(u64 cpuid) {};
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 */
175LTTNG_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
188LTTNG_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
197LTTNG_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
206LTTNG_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 */
218LTTNG_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
231LTTNG_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.024839 seconds and 5 git commands to generate.