blob: 408fa576c1464dcd6a6532cfc70b3af2981bac9c [file] [log] [blame]
Arjan van de Ven61613522009-09-17 16:11:28 +02001#undef TRACE_SYSTEM
2#define TRACE_SYSTEM power
3
4#if !defined(_TRACE_POWER_H) || defined(TRACE_HEADER_MULTI_READ)
5#define _TRACE_POWER_H
6
7#include <linux/ktime.h>
Sahara247e9ee2013-06-21 11:12:28 +09008#include <linux/pm_qos.h>
Arjan van de Ven61613522009-09-17 16:11:28 +02009#include <linux/tracepoint.h>
Steven Rostedt (Red Hat)af658dc2015-04-29 14:36:05 -040010#include <linux/trace_events.h>
Todd E Brandtbb3632c2014-06-06 05:40:17 -070011
12#define TPS(x) tracepoint_string(x)
Arjan van de Ven61613522009-09-17 16:11:28 +020013
Thomas Renninger25e41932011-01-03 17:50:44 +010014DECLARE_EVENT_CLASS(cpu,
15
16 TP_PROTO(unsigned int state, unsigned int cpu_id),
17
18 TP_ARGS(state, cpu_id),
19
20 TP_STRUCT__entry(
21 __field( u32, state )
22 __field( u32, cpu_id )
23 ),
24
25 TP_fast_assign(
26 __entry->state = state;
27 __entry->cpu_id = cpu_id;
28 ),
29
30 TP_printk("state=%lu cpu_id=%lu", (unsigned long)__entry->state,
31 (unsigned long)__entry->cpu_id)
32);
33
34DEFINE_EVENT(cpu, cpu_idle,
35
36 TP_PROTO(unsigned int state, unsigned int cpu_id),
37
38 TP_ARGS(state, cpu_id)
39);
40
Shilpasri G Bhat0306e482016-02-03 01:11:40 +053041TRACE_EVENT(powernv_throttle,
42
43 TP_PROTO(int chip_id, const char *reason, int pmax),
44
45 TP_ARGS(chip_id, reason, pmax),
46
47 TP_STRUCT__entry(
48 __field(int, chip_id)
49 __string(reason, reason)
50 __field(int, pmax)
51 ),
52
53 TP_fast_assign(
54 __entry->chip_id = chip_id;
55 __assign_str(reason, reason);
56 __entry->pmax = pmax;
57 ),
58
59 TP_printk("Chip %d Pmax %d %s", __entry->chip_id,
60 __entry->pmax, __get_str(reason))
61);
62
Dirk Brandewieb69880f2014-01-16 10:32:25 -080063TRACE_EVENT(pstate_sample,
64
65 TP_PROTO(u32 core_busy,
66 u32 scaled_busy,
Doug Smythies4055fad2015-04-11 21:10:26 -070067 u32 from,
68 u32 to,
Dirk Brandewieb69880f2014-01-16 10:32:25 -080069 u64 mperf,
70 u64 aperf,
Doug Smythies4055fad2015-04-11 21:10:26 -070071 u64 tsc,
Srinivas Pandruvada3ba7bca2016-09-13 17:41:33 -070072 u32 freq,
73 u32 io_boost
Dirk Brandewieb69880f2014-01-16 10:32:25 -080074 ),
75
76 TP_ARGS(core_busy,
77 scaled_busy,
Doug Smythies4055fad2015-04-11 21:10:26 -070078 from,
79 to,
Dirk Brandewieb69880f2014-01-16 10:32:25 -080080 mperf,
81 aperf,
Doug Smythies4055fad2015-04-11 21:10:26 -070082 tsc,
Srinivas Pandruvada3ba7bca2016-09-13 17:41:33 -070083 freq,
84 io_boost
Dirk Brandewieb69880f2014-01-16 10:32:25 -080085 ),
86
87 TP_STRUCT__entry(
88 __field(u32, core_busy)
89 __field(u32, scaled_busy)
Doug Smythies4055fad2015-04-11 21:10:26 -070090 __field(u32, from)
91 __field(u32, to)
Dirk Brandewieb69880f2014-01-16 10:32:25 -080092 __field(u64, mperf)
93 __field(u64, aperf)
Doug Smythies4055fad2015-04-11 21:10:26 -070094 __field(u64, tsc)
Dirk Brandewieb69880f2014-01-16 10:32:25 -080095 __field(u32, freq)
Srinivas Pandruvada3ba7bca2016-09-13 17:41:33 -070096 __field(u32, io_boost)
Doug Smythies4055fad2015-04-11 21:10:26 -070097 ),
Dirk Brandewieb69880f2014-01-16 10:32:25 -080098
99 TP_fast_assign(
100 __entry->core_busy = core_busy;
101 __entry->scaled_busy = scaled_busy;
Doug Smythies4055fad2015-04-11 21:10:26 -0700102 __entry->from = from;
103 __entry->to = to;
Dirk Brandewieb69880f2014-01-16 10:32:25 -0800104 __entry->mperf = mperf;
105 __entry->aperf = aperf;
Doug Smythies4055fad2015-04-11 21:10:26 -0700106 __entry->tsc = tsc;
Dirk Brandewieb69880f2014-01-16 10:32:25 -0800107 __entry->freq = freq;
Srinivas Pandruvada3ba7bca2016-09-13 17:41:33 -0700108 __entry->io_boost = io_boost;
Dirk Brandewieb69880f2014-01-16 10:32:25 -0800109 ),
110
Srinivas Pandruvada3ba7bca2016-09-13 17:41:33 -0700111 TP_printk("core_busy=%lu scaled=%lu from=%lu to=%lu mperf=%llu aperf=%llu tsc=%llu freq=%lu io_boost=%lu",
Dirk Brandewieb69880f2014-01-16 10:32:25 -0800112 (unsigned long)__entry->core_busy,
113 (unsigned long)__entry->scaled_busy,
Doug Smythies4055fad2015-04-11 21:10:26 -0700114 (unsigned long)__entry->from,
115 (unsigned long)__entry->to,
Dirk Brandewieb69880f2014-01-16 10:32:25 -0800116 (unsigned long long)__entry->mperf,
117 (unsigned long long)__entry->aperf,
Doug Smythies4055fad2015-04-11 21:10:26 -0700118 (unsigned long long)__entry->tsc,
Srinivas Pandruvada3ba7bca2016-09-13 17:41:33 -0700119 (unsigned long)__entry->freq,
120 (unsigned long)__entry->io_boost
Dirk Brandewieb69880f2014-01-16 10:32:25 -0800121 )
122
123);
124
Thomas Renninger25e41932011-01-03 17:50:44 +0100125/* This file can get included multiple times, TRACE_HEADER_MULTI_READ at top */
126#ifndef _PWR_EVENT_AVOID_DOUBLE_DEFINING
127#define _PWR_EVENT_AVOID_DOUBLE_DEFINING
128
129#define PWR_EVENT_EXIT -1
Arjan van de Ven61613522009-09-17 16:11:28 +0200130#endif
131
Todd E Brandte8bca472014-06-10 07:31:22 -0700132#define pm_verb_symbolic(event) \
133 __print_symbolic(event, \
134 { PM_EVENT_SUSPEND, "suspend" }, \
135 { PM_EVENT_RESUME, "resume" }, \
136 { PM_EVENT_FREEZE, "freeze" }, \
137 { PM_EVENT_QUIESCE, "quiesce" }, \
138 { PM_EVENT_HIBERNATE, "hibernate" }, \
139 { PM_EVENT_THAW, "thaw" }, \
140 { PM_EVENT_RESTORE, "restore" }, \
141 { PM_EVENT_RECOVER, "recover" })
142
Thomas Renninger25e41932011-01-03 17:50:44 +0100143DEFINE_EVENT(cpu, cpu_frequency,
144
145 TP_PROTO(unsigned int frequency, unsigned int cpu_id),
146
147 TP_ARGS(frequency, cpu_id)
148);
149
Ruchi Kandoi83707ea2015-11-19 16:07:19 -0800150TRACE_EVENT(cpu_frequency_limits,
151
152 TP_PROTO(unsigned int max_freq, unsigned int min_freq,
153 unsigned int cpu_id),
154
155 TP_ARGS(max_freq, min_freq, cpu_id),
156
157 TP_STRUCT__entry(
158 __field( u32, min_freq )
159 __field( u32, max_freq )
160 __field( u32, cpu_id )
161 ),
162
163 TP_fast_assign(
164 __entry->min_freq = min_freq;
Thierry Strudeld3354592016-03-23 10:02:15 -0700165 __entry->max_freq = max_freq;
Ruchi Kandoi83707ea2015-11-19 16:07:19 -0800166 __entry->cpu_id = cpu_id;
167 ),
168
169 TP_printk("min=%lu max=%lu cpu_id=%lu",
170 (unsigned long)__entry->min_freq,
171 (unsigned long)__entry->max_freq,
172 (unsigned long)__entry->cpu_id)
173);
174
Juri Lelli2f8ed122015-04-30 17:35:23 +0100175DEFINE_EVENT(cpu, cpu_capacity,
176
177 TP_PROTO(unsigned int capacity, unsigned int cpu_id),
178
179 TP_ARGS(capacity, cpu_id)
180);
181
Matt Wagantall2440ee0d2012-07-30 19:47:52 -0700182TRACE_EVENT(cpu_frequency_switch_start,
183
184 TP_PROTO(unsigned int start_freq, unsigned int end_freq,
185 unsigned int cpu_id),
186
187 TP_ARGS(start_freq, end_freq, cpu_id),
188
189 TP_STRUCT__entry(
190 __field( u32, start_freq )
191 __field( u32, end_freq )
192 __field( u32, cpu_id )
193 ),
194
195 TP_fast_assign(
196 __entry->start_freq = start_freq;
197 __entry->end_freq = end_freq;
198 __entry->cpu_id = cpu_id;
199 ),
200
201 TP_printk("start=%lu end=%lu cpu_id=%lu",
202 (unsigned long)__entry->start_freq,
203 (unsigned long)__entry->end_freq,
204 (unsigned long)__entry->cpu_id)
205);
206
207TRACE_EVENT(cpu_frequency_switch_end,
208
209 TP_PROTO(unsigned int cpu_id),
210
211 TP_ARGS(cpu_id),
212
213 TP_STRUCT__entry(
214 __field( u32, cpu_id )
215 ),
216
217 TP_fast_assign(
218 __entry->cpu_id = cpu_id;
219 ),
220
221 TP_printk("cpu_id=%lu", (unsigned long)__entry->cpu_id)
222);
223
Todd E Brandte8bca472014-06-10 07:31:22 -0700224TRACE_EVENT(device_pm_callback_start,
Shuah Khan53644672013-07-26 13:30:20 -0600225
Todd E Brandte8bca472014-06-10 07:31:22 -0700226 TP_PROTO(struct device *dev, const char *pm_ops, int event),
Shuah Khan53644672013-07-26 13:30:20 -0600227
Todd E Brandte8bca472014-06-10 07:31:22 -0700228 TP_ARGS(dev, pm_ops, event),
Shuah Khan53644672013-07-26 13:30:20 -0600229
230 TP_STRUCT__entry(
231 __string(device, dev_name(dev))
232 __string(driver, dev_driver_string(dev))
233 __string(parent, dev->parent ? dev_name(dev->parent) : "none")
234 __string(pm_ops, pm_ops ? pm_ops : "none ")
Todd E Brandte8bca472014-06-10 07:31:22 -0700235 __field(int, event)
236 ),
237
238 TP_fast_assign(
239 __assign_str(device, dev_name(dev));
240 __assign_str(driver, dev_driver_string(dev));
241 __assign_str(parent,
242 dev->parent ? dev_name(dev->parent) : "none");
243 __assign_str(pm_ops, pm_ops ? pm_ops : "none ");
244 __entry->event = event;
245 ),
246
247 TP_printk("%s %s, parent: %s, %s[%s]", __get_str(driver),
248 __get_str(device), __get_str(parent), __get_str(pm_ops),
249 pm_verb_symbolic(__entry->event))
250);
251
252TRACE_EVENT(device_pm_callback_end,
253
254 TP_PROTO(struct device *dev, int error),
255
256 TP_ARGS(dev, error),
257
258 TP_STRUCT__entry(
259 __string(device, dev_name(dev))
260 __string(driver, dev_driver_string(dev))
Shuah Khan53644672013-07-26 13:30:20 -0600261 __field(int, error)
262 ),
263
264 TP_fast_assign(
Shuah Khan53644672013-07-26 13:30:20 -0600265 __assign_str(device, dev_name(dev));
266 __assign_str(driver, dev_driver_string(dev));
Shuah Khan53644672013-07-26 13:30:20 -0600267 __entry->error = error;
268 ),
269
Todd E Brandte8bca472014-06-10 07:31:22 -0700270 TP_printk("%s %s, err=%d",
271 __get_str(driver), __get_str(device), __entry->error)
Shuah Khan53644672013-07-26 13:30:20 -0600272);
273
Todd E Brandtbb3632c2014-06-06 05:40:17 -0700274TRACE_EVENT(suspend_resume,
275
276 TP_PROTO(const char *action, int val, bool start),
277
278 TP_ARGS(action, val, start),
279
280 TP_STRUCT__entry(
281 __field(const char *, action)
282 __field(int, val)
283 __field(bool, start)
284 ),
285
286 TP_fast_assign(
287 __entry->action = action;
288 __entry->val = val;
289 __entry->start = start;
290 ),
291
292 TP_printk("%s[%u] %s", __entry->action, (unsigned int)__entry->val,
293 (__entry->start)?"begin":"end")
294);
295
Arve Hjønnevåg6791e362012-04-29 22:53:02 +0200296DECLARE_EVENT_CLASS(wakeup_source,
297
298 TP_PROTO(const char *name, unsigned int state),
299
300 TP_ARGS(name, state),
301
302 TP_STRUCT__entry(
303 __string( name, name )
304 __field( u64, state )
305 ),
306
307 TP_fast_assign(
308 __assign_str(name, name);
309 __entry->state = state;
310 ),
311
312 TP_printk("%s state=0x%lx", __get_str(name),
313 (unsigned long)__entry->state)
314);
315
316DEFINE_EVENT(wakeup_source, wakeup_source_activate,
317
318 TP_PROTO(const char *name, unsigned int state),
319
320 TP_ARGS(name, state)
321);
322
323DEFINE_EVENT(wakeup_source, wakeup_source_deactivate,
324
325 TP_PROTO(const char *name, unsigned int state),
326
327 TP_ARGS(name, state)
328);
329
Jean Pihet74704ac2010-09-07 09:21:32 +0200330/*
331 * The clock events are used for clock enable/disable and for
332 * clock rate change
333 */
334DECLARE_EVENT_CLASS(clock,
335
336 TP_PROTO(const char *name, unsigned int state, unsigned int cpu_id),
337
338 TP_ARGS(name, state, cpu_id),
339
340 TP_STRUCT__entry(
341 __string( name, name )
342 __field( u64, state )
343 __field( u64, cpu_id )
344 ),
345
346 TP_fast_assign(
347 __assign_str(name, name);
348 __entry->state = state;
349 __entry->cpu_id = cpu_id;
350 ),
351
352 TP_printk("%s state=%lu cpu_id=%lu", __get_str(name),
353 (unsigned long)__entry->state, (unsigned long)__entry->cpu_id)
354);
355
356DEFINE_EVENT(clock, clock_enable,
357
358 TP_PROTO(const char *name, unsigned int state, unsigned int cpu_id),
359
360 TP_ARGS(name, state, cpu_id)
361);
362
363DEFINE_EVENT(clock, clock_disable,
364
365 TP_PROTO(const char *name, unsigned int state, unsigned int cpu_id),
366
367 TP_ARGS(name, state, cpu_id)
368);
369
370DEFINE_EVENT(clock, clock_set_rate,
371
372 TP_PROTO(const char *name, unsigned int state, unsigned int cpu_id),
373
374 TP_ARGS(name, state, cpu_id)
375);
376
Colin Crossb354d8a2012-05-09 16:09:50 -0700377TRACE_EVENT(clock_set_parent,
378
379 TP_PROTO(const char *name, const char *parent_name),
380
381 TP_ARGS(name, parent_name),
382
383 TP_STRUCT__entry(
384 __string( name, name )
385 __string( parent_name, parent_name )
386 ),
387
388 TP_fast_assign(
389 __assign_str(name, name);
390 __assign_str(parent_name, parent_name);
391 ),
392
393 TP_printk("%s parent=%s", __get_str(name), __get_str(parent_name))
394);
395
Jean Pihet74704ac2010-09-07 09:21:32 +0200396/*
397 * The power domain events are used for power domains transitions
398 */
399DECLARE_EVENT_CLASS(power_domain,
400
401 TP_PROTO(const char *name, unsigned int state, unsigned int cpu_id),
402
403 TP_ARGS(name, state, cpu_id),
404
405 TP_STRUCT__entry(
406 __string( name, name )
407 __field( u64, state )
408 __field( u64, cpu_id )
409 ),
410
411 TP_fast_assign(
412 __assign_str(name, name);
413 __entry->state = state;
414 __entry->cpu_id = cpu_id;
415),
416
417 TP_printk("%s state=%lu cpu_id=%lu", __get_str(name),
418 (unsigned long)__entry->state, (unsigned long)__entry->cpu_id)
419);
420
421DEFINE_EVENT(power_domain, power_domain_target,
422
423 TP_PROTO(const char *name, unsigned int state, unsigned int cpu_id),
424
425 TP_ARGS(name, state, cpu_id)
426);
Sahara247e9ee2013-06-21 11:12:28 +0900427
428/*
429 * The pm qos events are used for pm qos update
430 */
Saharaae8822b2013-06-21 11:12:29 +0900431DECLARE_EVENT_CLASS(pm_qos_request,
432
433 TP_PROTO(int pm_qos_class, s32 value),
434
435 TP_ARGS(pm_qos_class, value),
436
437 TP_STRUCT__entry(
438 __field( int, pm_qos_class )
439 __field( s32, value )
440 ),
441
442 TP_fast_assign(
443 __entry->pm_qos_class = pm_qos_class;
444 __entry->value = value;
445 ),
446
447 TP_printk("pm_qos_class=%s value=%d",
448 __print_symbolic(__entry->pm_qos_class,
449 { PM_QOS_CPU_DMA_LATENCY, "CPU_DMA_LATENCY" },
450 { PM_QOS_NETWORK_LATENCY, "NETWORK_LATENCY" },
451 { PM_QOS_NETWORK_THROUGHPUT, "NETWORK_THROUGHPUT" }),
452 __entry->value)
453);
454
455DEFINE_EVENT(pm_qos_request, pm_qos_add_request,
456
457 TP_PROTO(int pm_qos_class, s32 value),
458
459 TP_ARGS(pm_qos_class, value)
460);
461
462DEFINE_EVENT(pm_qos_request, pm_qos_update_request,
463
464 TP_PROTO(int pm_qos_class, s32 value),
465
466 TP_ARGS(pm_qos_class, value)
467);
468
469DEFINE_EVENT(pm_qos_request, pm_qos_remove_request,
470
471 TP_PROTO(int pm_qos_class, s32 value),
472
473 TP_ARGS(pm_qos_class, value)
474);
475
476TRACE_EVENT(pm_qos_update_request_timeout,
477
478 TP_PROTO(int pm_qos_class, s32 value, unsigned long timeout_us),
479
480 TP_ARGS(pm_qos_class, value, timeout_us),
481
482 TP_STRUCT__entry(
483 __field( int, pm_qos_class )
484 __field( s32, value )
485 __field( unsigned long, timeout_us )
486 ),
487
488 TP_fast_assign(
489 __entry->pm_qos_class = pm_qos_class;
490 __entry->value = value;
491 __entry->timeout_us = timeout_us;
492 ),
493
494 TP_printk("pm_qos_class=%s value=%d, timeout_us=%ld",
495 __print_symbolic(__entry->pm_qos_class,
496 { PM_QOS_CPU_DMA_LATENCY, "CPU_DMA_LATENCY" },
497 { PM_QOS_NETWORK_LATENCY, "NETWORK_LATENCY" },
498 { PM_QOS_NETWORK_THROUGHPUT, "NETWORK_THROUGHPUT" }),
499 __entry->value, __entry->timeout_us)
500);
501
Sahara247e9ee2013-06-21 11:12:28 +0900502DECLARE_EVENT_CLASS(pm_qos_update,
503
504 TP_PROTO(enum pm_qos_req_action action, int prev_value, int curr_value),
505
506 TP_ARGS(action, prev_value, curr_value),
507
508 TP_STRUCT__entry(
509 __field( enum pm_qos_req_action, action )
510 __field( int, prev_value )
511 __field( int, curr_value )
512 ),
513
514 TP_fast_assign(
515 __entry->action = action;
516 __entry->prev_value = prev_value;
517 __entry->curr_value = curr_value;
518 ),
519
520 TP_printk("action=%s prev_value=%d curr_value=%d",
521 __print_symbolic(__entry->action,
522 { PM_QOS_ADD_REQ, "ADD_REQ" },
523 { PM_QOS_UPDATE_REQ, "UPDATE_REQ" },
524 { PM_QOS_REMOVE_REQ, "REMOVE_REQ" }),
525 __entry->prev_value, __entry->curr_value)
526);
527
528DEFINE_EVENT(pm_qos_update, pm_qos_update_target,
529
530 TP_PROTO(enum pm_qos_req_action action, int prev_value, int curr_value),
531
532 TP_ARGS(action, prev_value, curr_value)
533);
534
535DEFINE_EVENT_PRINT(pm_qos_update, pm_qos_update_flags,
536
537 TP_PROTO(enum pm_qos_req_action action, int prev_value, int curr_value),
538
539 TP_ARGS(action, prev_value, curr_value),
540
541 TP_printk("action=%s prev_value=0x%x curr_value=0x%x",
542 __print_symbolic(__entry->action,
543 { PM_QOS_ADD_REQ, "ADD_REQ" },
544 { PM_QOS_UPDATE_REQ, "UPDATE_REQ" },
545 { PM_QOS_REMOVE_REQ, "REMOVE_REQ" }),
546 __entry->prev_value, __entry->curr_value)
547);
Sahara96d9d0b2013-06-21 11:12:30 +0900548
549DECLARE_EVENT_CLASS(dev_pm_qos_request,
550
551 TP_PROTO(const char *name, enum dev_pm_qos_req_type type,
552 s32 new_value),
553
554 TP_ARGS(name, type, new_value),
555
556 TP_STRUCT__entry(
557 __string( name, name )
558 __field( enum dev_pm_qos_req_type, type )
559 __field( s32, new_value )
560 ),
561
562 TP_fast_assign(
563 __assign_str(name, name);
564 __entry->type = type;
565 __entry->new_value = new_value;
566 ),
567
568 TP_printk("device=%s type=%s new_value=%d",
569 __get_str(name),
570 __print_symbolic(__entry->type,
Rafael J. Wysockib02f6692014-02-11 00:35:23 +0100571 { DEV_PM_QOS_RESUME_LATENCY, "DEV_PM_QOS_RESUME_LATENCY" },
572 { DEV_PM_QOS_FLAGS, "DEV_PM_QOS_FLAGS" }),
Sahara96d9d0b2013-06-21 11:12:30 +0900573 __entry->new_value)
574);
575
576DEFINE_EVENT(dev_pm_qos_request, dev_pm_qos_add_request,
577
578 TP_PROTO(const char *name, enum dev_pm_qos_req_type type,
579 s32 new_value),
580
581 TP_ARGS(name, type, new_value)
582);
583
584DEFINE_EVENT(dev_pm_qos_request, dev_pm_qos_update_request,
585
586 TP_PROTO(const char *name, enum dev_pm_qos_req_type type,
587 s32 new_value),
588
589 TP_ARGS(name, type, new_value)
590);
591
592DEFINE_EVENT(dev_pm_qos_request, dev_pm_qos_remove_request,
593
594 TP_PROTO(const char *name, enum dev_pm_qos_req_type type,
595 s32 new_value),
596
597 TP_ARGS(name, type, new_value)
598);
Junjie Wucd8a2952014-10-30 12:13:03 -0700599
600TRACE_EVENT(bw_hwmon_meas,
601
602 TP_PROTO(const char *name, unsigned long mbps,
603 unsigned long us, int wake),
604
605 TP_ARGS(name, mbps, us, wake),
606
607 TP_STRUCT__entry(
608 __string( name, name )
609 __field( unsigned long, mbps )
610 __field( unsigned long, us )
611 __field( int, wake )
612 ),
613
614 TP_fast_assign(
615 __assign_str(name, name);
616 __entry->mbps = mbps;
617 __entry->us = us;
618 __entry->wake = wake;
619 ),
620
621 TP_printk("dev: %s, mbps = %lu, us = %lu, wake = %d",
622 __get_str(name),
623 __entry->mbps,
624 __entry->us,
625 __entry->wake)
626);
627
628TRACE_EVENT(bw_hwmon_update,
629
630 TP_PROTO(const char *name, unsigned long mbps, unsigned long freq,
631 unsigned long up_thres, unsigned long down_thres),
632
633 TP_ARGS(name, mbps, freq, up_thres, down_thres),
634
635 TP_STRUCT__entry(
636 __string( name, name )
637 __field( unsigned long, mbps )
638 __field( unsigned long, freq )
639 __field( unsigned long, up_thres )
640 __field( unsigned long, down_thres )
641 ),
642
643 TP_fast_assign(
644 __assign_str(name, name);
645 __entry->mbps = mbps;
646 __entry->freq = freq;
647 __entry->up_thres = up_thres;
648 __entry->down_thres = down_thres;
649 ),
650
651 TP_printk("dev: %s, mbps = %lu, freq = %lu, up = %lu, down = %lu",
652 __get_str(name),
653 __entry->mbps,
654 __entry->freq,
655 __entry->up_thres,
656 __entry->down_thres)
657);
658
659TRACE_EVENT(cache_hwmon_meas,
660 TP_PROTO(const char *name, unsigned long high_mrps,
661 unsigned long med_mrps, unsigned long low_mrps,
662 unsigned int busy_percent, unsigned int us),
663 TP_ARGS(name, high_mrps, med_mrps, low_mrps, busy_percent, us),
664 TP_STRUCT__entry(
665 __string(name, name)
666 __field(unsigned long, high_mrps)
667 __field(unsigned long, med_mrps)
668 __field(unsigned long, low_mrps)
669 __field(unsigned long, total_mrps)
670 __field(unsigned int, busy_percent)
671 __field(unsigned int, us)
672 ),
673 TP_fast_assign(
674 __assign_str(name, name);
675 __entry->high_mrps = high_mrps;
676 __entry->med_mrps = med_mrps;
677 __entry->low_mrps = low_mrps;
678 __entry->total_mrps = high_mrps + med_mrps + low_mrps;
679 __entry->busy_percent = busy_percent;
680 __entry->us = us;
681 ),
682 TP_printk("dev=%s H=%lu M=%lu L=%lu T=%lu busy_pct=%u period=%u",
683 __get_str(name), __entry->high_mrps, __entry->med_mrps,
684 __entry->low_mrps, __entry->total_mrps,
685 __entry->busy_percent, __entry->us)
686);
687
688TRACE_EVENT(cache_hwmon_update,
689 TP_PROTO(const char *name, unsigned long freq_mhz),
690 TP_ARGS(name, freq_mhz),
691 TP_STRUCT__entry(
692 __string(name, name)
693 __field(unsigned long, freq)
694 ),
695 TP_fast_assign(
696 __assign_str(name, name);
697 __entry->freq = freq_mhz;
698 ),
699 TP_printk("dev=%s freq=%lu", __get_str(name), __entry->freq)
700);
701
Rohit Gupta5e4358c2014-07-18 16:16:02 -0700702TRACE_EVENT(memlat_dev_meas,
703
704 TP_PROTO(const char *name, unsigned int dev_id, unsigned long inst,
Saravana Kannan83f28462017-09-26 19:45:15 -0700705 unsigned long mem, unsigned long freq, unsigned int stall,
706 unsigned int ratio),
Rohit Gupta5e4358c2014-07-18 16:16:02 -0700707
Saravana Kannan83f28462017-09-26 19:45:15 -0700708 TP_ARGS(name, dev_id, inst, mem, freq, stall, ratio),
Rohit Gupta5e4358c2014-07-18 16:16:02 -0700709
710 TP_STRUCT__entry(
711 __string(name, name)
712 __field(unsigned int, dev_id)
713 __field(unsigned long, inst)
714 __field(unsigned long, mem)
715 __field(unsigned long, freq)
Saravana Kannan83f28462017-09-26 19:45:15 -0700716 __field(unsigned int, stall)
Rohit Gupta5e4358c2014-07-18 16:16:02 -0700717 __field(unsigned int, ratio)
718 ),
719
720 TP_fast_assign(
721 __assign_str(name, name);
722 __entry->dev_id = dev_id;
723 __entry->inst = inst;
724 __entry->mem = mem;
725 __entry->freq = freq;
Saravana Kannan83f28462017-09-26 19:45:15 -0700726 __entry->stall = stall;
Rohit Gupta5e4358c2014-07-18 16:16:02 -0700727 __entry->ratio = ratio;
728 ),
729
Saravana Kannan83f28462017-09-26 19:45:15 -0700730 TP_printk("dev: %s, id=%u, inst=%lu, mem=%lu, freq=%lu, stall=%u, ratio=%u",
Rohit Gupta5e4358c2014-07-18 16:16:02 -0700731 __get_str(name),
732 __entry->dev_id,
733 __entry->inst,
734 __entry->mem,
735 __entry->freq,
Saravana Kannan83f28462017-09-26 19:45:15 -0700736 __entry->stall,
Rohit Gupta5e4358c2014-07-18 16:16:02 -0700737 __entry->ratio)
738);
739
740TRACE_EVENT(memlat_dev_update,
741
742 TP_PROTO(const char *name, unsigned int dev_id, unsigned long inst,
743 unsigned long mem, unsigned long freq, unsigned long vote),
744
745 TP_ARGS(name, dev_id, inst, mem, freq, vote),
746
747 TP_STRUCT__entry(
748 __string(name, name)
749 __field(unsigned int, dev_id)
750 __field(unsigned long, inst)
751 __field(unsigned long, mem)
752 __field(unsigned long, freq)
753 __field(unsigned long, vote)
754 ),
755
756 TP_fast_assign(
757 __assign_str(name, name);
758 __entry->dev_id = dev_id;
759 __entry->inst = inst;
760 __entry->mem = mem;
761 __entry->freq = freq;
762 __entry->vote = vote;
763 ),
764
765 TP_printk("dev: %s, id=%u, inst=%lu, mem=%lu, freq=%lu, vote=%lu",
766 __get_str(name),
767 __entry->dev_id,
768 __entry->inst,
769 __entry->mem,
770 __entry->freq,
771 __entry->vote)
772);
773
Saravana Kannan12a35ed2017-03-27 15:46:28 -0700774TRACE_EVENT(sugov_util_update,
775 TP_PROTO(int cpu,
Rohit Gupta2cd0e9e2017-08-07 10:50:35 -0700776 unsigned long util, unsigned long avg_cap,
777 unsigned long max_cap, unsigned long nl, unsigned long pl,
Saravana Kannan12a35ed2017-03-27 15:46:28 -0700778 unsigned int flags),
Rohit Gupta2cd0e9e2017-08-07 10:50:35 -0700779 TP_ARGS(cpu, util, avg_cap, max_cap, nl, pl, flags),
Saravana Kannan12a35ed2017-03-27 15:46:28 -0700780 TP_STRUCT__entry(
781 __field( int, cpu)
782 __field( unsigned long, util)
Rohit Gupta2cd0e9e2017-08-07 10:50:35 -0700783 __field( unsigned long, avg_cap)
Saravana Kannan12a35ed2017-03-27 15:46:28 -0700784 __field( unsigned long, max_cap)
785 __field( unsigned long, nl)
786 __field( unsigned long, pl)
787 __field( unsigned int, flags)
788 ),
789 TP_fast_assign(
790 __entry->cpu = cpu;
791 __entry->util = util;
Rohit Gupta2cd0e9e2017-08-07 10:50:35 -0700792 __entry->avg_cap = avg_cap;
Saravana Kannan12a35ed2017-03-27 15:46:28 -0700793 __entry->max_cap = max_cap;
794 __entry->nl = nl;
795 __entry->pl = pl;
796 __entry->flags = flags;
797 ),
Rohit Gupta2cd0e9e2017-08-07 10:50:35 -0700798 TP_printk("cpu=%d util=%lu avg_cap=%lu max_cap=%lu nl=%lu pl=%lu flags=0x%x",
799 __entry->cpu, __entry->util, __entry->avg_cap,
800 __entry->max_cap, __entry->nl,
801 __entry->pl, __entry->flags)
Saravana Kannan12a35ed2017-03-27 15:46:28 -0700802);
803
Saravana Kannan2cf86dc2017-10-12 16:54:36 -0700804TRACE_EVENT(sugov_next_freq,
805 TP_PROTO(unsigned int cpu, unsigned long util, unsigned long max,
806 unsigned int freq),
807 TP_ARGS(cpu, util, max, freq),
808 TP_STRUCT__entry(
809 __field( unsigned int, cpu)
810 __field( unsigned long, util)
811 __field( unsigned long, max)
812 __field( unsigned int, freq)
813 ),
814 TP_fast_assign(
815 __entry->cpu = cpu;
816 __entry->util = util;
817 __entry->max = max;
818 __entry->freq = freq;
819 ),
820 TP_printk("cpu=%u util=%lu max=%lu freq=%u",
821 __entry->cpu,
822 __entry->util,
823 __entry->max,
824 __entry->freq)
825);
826
Vijay Ganti10772c02017-05-05 11:47:40 -0700827DECLARE_EVENT_CLASS(kpm_module,
828
829 TP_PROTO(unsigned int managed_cpus, unsigned int max_cpus),
830
831 TP_ARGS(managed_cpus, max_cpus),
832
833 TP_STRUCT__entry(
834 __field(u32, managed_cpus)
835 __field(u32, max_cpus)
836 ),
837
838 TP_fast_assign(
839 __entry->managed_cpus = managed_cpus;
840 __entry->max_cpus = max_cpus;
841 ),
842
843 TP_printk("managed:%x max_cpus=%u", (unsigned int)__entry->managed_cpus,
844 (unsigned int)__entry->max_cpus)
845);
846
847DEFINE_EVENT(kpm_module, set_max_cpus,
848 TP_PROTO(unsigned int managed_cpus, unsigned int max_cpus),
849 TP_ARGS(managed_cpus, max_cpus)
850);
851
852DEFINE_EVENT(kpm_module, reevaluate_hotplug,
853 TP_PROTO(unsigned int managed_cpus, unsigned int max_cpus),
854 TP_ARGS(managed_cpus, max_cpus)
855);
856
857DECLARE_EVENT_CLASS(kpm_module2,
858
859 TP_PROTO(unsigned int cpu, unsigned int enter_cycle_cnt,
860 unsigned int exit_cycle_cnt,
861 unsigned int io_busy, u64 iowait),
862
863 TP_ARGS(cpu, enter_cycle_cnt, exit_cycle_cnt, io_busy, iowait),
864
865 TP_STRUCT__entry(
866 __field(u32, cpu)
867 __field(u32, enter_cycle_cnt)
868 __field(u32, exit_cycle_cnt)
869 __field(u32, io_busy)
870 __field(u64, iowait)
871 ),
872
873 TP_fast_assign(
874 __entry->cpu = cpu;
875 __entry->enter_cycle_cnt = enter_cycle_cnt;
876 __entry->exit_cycle_cnt = exit_cycle_cnt;
877 __entry->io_busy = io_busy;
878 __entry->iowait = iowait;
879 ),
880
881 TP_printk("CPU:%u enter_cycles=%u exit_cycles=%u io_busy=%u iowait=%lu",
882 (unsigned int)__entry->cpu,
883 (unsigned int)__entry->enter_cycle_cnt,
884 (unsigned int)__entry->exit_cycle_cnt,
885 (unsigned int)__entry->io_busy,
886 (unsigned long)__entry->iowait)
887);
888
889DEFINE_EVENT(kpm_module2, track_iowait,
890 TP_PROTO(unsigned int cpu, unsigned int enter_cycle_cnt,
891 unsigned int exit_cycle_cnt, unsigned int io_busy, u64 iowait),
892 TP_ARGS(cpu, enter_cycle_cnt, exit_cycle_cnt, io_busy, iowait)
893);
894
895DECLARE_EVENT_CLASS(cpu_modes,
896
897 TP_PROTO(unsigned int cpu, unsigned int max_load,
898 unsigned int single_enter_cycle_cnt,
899 unsigned int single_exit_cycle_cnt,
900 unsigned int total_load, unsigned int multi_enter_cycle_cnt,
901 unsigned int multi_exit_cycle_cnt,
902 unsigned int perf_cl_peak_enter_cycle_cnt,
903 unsigned int perf_cl_peak_exit_cycle_cnt,
904 unsigned int mode,
905 unsigned int cpu_cnt),
906
907 TP_ARGS(cpu, max_load, single_enter_cycle_cnt, single_exit_cycle_cnt,
908 total_load, multi_enter_cycle_cnt, multi_exit_cycle_cnt,
909 perf_cl_peak_enter_cycle_cnt, perf_cl_peak_exit_cycle_cnt, mode,
910 cpu_cnt),
911
912 TP_STRUCT__entry(
913 __field(u32, cpu)
914 __field(u32, max_load)
915 __field(u32, single_enter_cycle_cnt)
916 __field(u32, single_exit_cycle_cnt)
917 __field(u32, total_load)
918 __field(u32, multi_enter_cycle_cnt)
919 __field(u32, multi_exit_cycle_cnt)
920 __field(u32, perf_cl_peak_enter_cycle_cnt)
921 __field(u32, perf_cl_peak_exit_cycle_cnt)
922 __field(u32, mode)
923 __field(u32, cpu_cnt)
924 ),
925
926 TP_fast_assign(
927 __entry->cpu = cpu;
928 __entry->max_load = max_load;
929 __entry->single_enter_cycle_cnt = single_enter_cycle_cnt;
930 __entry->single_exit_cycle_cnt = single_exit_cycle_cnt;
931 __entry->total_load = total_load;
932 __entry->multi_enter_cycle_cnt = multi_enter_cycle_cnt;
933 __entry->multi_exit_cycle_cnt = multi_exit_cycle_cnt;
934 __entry->perf_cl_peak_enter_cycle_cnt =
935 perf_cl_peak_enter_cycle_cnt;
936 __entry->perf_cl_peak_exit_cycle_cnt =
937 perf_cl_peak_exit_cycle_cnt;
938 __entry->mode = mode;
939 __entry->cpu_cnt = cpu_cnt;
940 ),
941
942 TP_printk("%u:%4u:%4u:%4u:%4u:%4u:%4u:%4u:%4u:%4u:%u",
943 (unsigned int)__entry->cpu, (unsigned int)__entry->max_load,
944 (unsigned int)__entry->single_enter_cycle_cnt,
945 (unsigned int)__entry->single_exit_cycle_cnt,
946 (unsigned int)__entry->total_load,
947 (unsigned int)__entry->multi_enter_cycle_cnt,
948 (unsigned int)__entry->multi_exit_cycle_cnt,
949 (unsigned int)__entry->perf_cl_peak_enter_cycle_cnt,
950 (unsigned int)__entry->perf_cl_peak_exit_cycle_cnt,
951 (unsigned int)__entry->mode,
952 (unsigned int)__entry->cpu_cnt)
953);
954
955DEFINE_EVENT(cpu_modes, cpu_mode_detect,
956 TP_PROTO(unsigned int cpu, unsigned int max_load,
957 unsigned int single_enter_cycle_cnt,
958 unsigned int single_exit_cycle_cnt,
959 unsigned int total_load, unsigned int multi_enter_cycle_cnt,
960 unsigned int multi_exit_cycle_cnt,
961 unsigned int perf_cl_peak_enter_cycle_cnt,
962 unsigned int perf_cl_peak_exit_cycle_cnt,
963 unsigned int mode,
964 unsigned int cpu_cnt),
965 TP_ARGS(cpu, max_load, single_enter_cycle_cnt, single_exit_cycle_cnt,
966 total_load, multi_enter_cycle_cnt, multi_exit_cycle_cnt,
967 perf_cl_peak_enter_cycle_cnt, perf_cl_peak_exit_cycle_cnt,
968 mode, cpu_cnt)
969);
970
971DECLARE_EVENT_CLASS(timer_status,
972 TP_PROTO(unsigned int cpu, unsigned int single_enter_cycles,
973 unsigned int single_enter_cycle_cnt,
974 unsigned int single_exit_cycles,
975 unsigned int single_exit_cycle_cnt,
976 unsigned int multi_enter_cycles,
977 unsigned int multi_enter_cycle_cnt,
978 unsigned int multi_exit_cycles,
979 unsigned int multi_exit_cycle_cnt, unsigned int timer_rate,
980 unsigned int mode),
981 TP_ARGS(cpu, single_enter_cycles, single_enter_cycle_cnt,
982 single_exit_cycles, single_exit_cycle_cnt, multi_enter_cycles,
983 multi_enter_cycle_cnt, multi_exit_cycles,
984 multi_exit_cycle_cnt, timer_rate, mode),
985
986 TP_STRUCT__entry(
987 __field(unsigned int, cpu)
988 __field(unsigned int, single_enter_cycles)
989 __field(unsigned int, single_enter_cycle_cnt)
990 __field(unsigned int, single_exit_cycles)
991 __field(unsigned int, single_exit_cycle_cnt)
992 __field(unsigned int, multi_enter_cycles)
993 __field(unsigned int, multi_enter_cycle_cnt)
994 __field(unsigned int, multi_exit_cycles)
995 __field(unsigned int, multi_exit_cycle_cnt)
996 __field(unsigned int, timer_rate)
997 __field(unsigned int, mode)
998 ),
999
1000 TP_fast_assign(
1001 __entry->cpu = cpu;
1002 __entry->single_enter_cycles = single_enter_cycles;
1003 __entry->single_enter_cycle_cnt = single_enter_cycle_cnt;
1004 __entry->single_exit_cycles = single_exit_cycles;
1005 __entry->single_exit_cycle_cnt = single_exit_cycle_cnt;
1006 __entry->multi_enter_cycles = multi_enter_cycles;
1007 __entry->multi_enter_cycle_cnt = multi_enter_cycle_cnt;
1008 __entry->multi_exit_cycles = multi_exit_cycles;
1009 __entry->multi_exit_cycle_cnt = multi_exit_cycle_cnt;
1010 __entry->timer_rate = timer_rate;
1011 __entry->mode = mode;
1012 ),
1013
1014 TP_printk("%u:%4u:%4u:%4u:%4u:%4u:%4u:%4u:%4u:%4u:%4u",
1015 (unsigned int) __entry->cpu,
1016 (unsigned int) __entry->single_enter_cycles,
1017 (unsigned int) __entry->single_enter_cycle_cnt,
1018 (unsigned int) __entry->single_exit_cycles,
1019 (unsigned int) __entry->single_exit_cycle_cnt,
1020 (unsigned int) __entry->multi_enter_cycles,
1021 (unsigned int) __entry->multi_enter_cycle_cnt,
1022 (unsigned int) __entry->multi_exit_cycles,
1023 (unsigned int) __entry->multi_exit_cycle_cnt,
1024 (unsigned int) __entry->timer_rate,
1025 (unsigned int) __entry->mode)
1026);
1027
1028DEFINE_EVENT(timer_status, single_mode_timeout,
1029 TP_PROTO(unsigned int cpu, unsigned int single_enter_cycles,
1030 unsigned int single_enter_cycle_cnt,
1031 unsigned int single_exit_cycles,
1032 unsigned int single_exit_cycle_cnt,
1033 unsigned int multi_enter_cycles,
1034 unsigned int multi_enter_cycle_cnt,
1035 unsigned int multi_exit_cycles,
1036 unsigned int multi_exit_cycle_cnt, unsigned int timer_rate,
1037 unsigned int mode),
1038 TP_ARGS(cpu, single_enter_cycles, single_enter_cycle_cnt,
1039 single_exit_cycles, single_exit_cycle_cnt, multi_enter_cycles,
1040 multi_enter_cycle_cnt, multi_exit_cycles, multi_exit_cycle_cnt,
1041 timer_rate, mode)
1042);
1043
1044DEFINE_EVENT(timer_status, single_cycle_exit_timer_start,
1045 TP_PROTO(unsigned int cpu, unsigned int single_enter_cycles,
1046 unsigned int single_enter_cycle_cnt,
1047 unsigned int single_exit_cycles,
1048 unsigned int single_exit_cycle_cnt,
1049 unsigned int multi_enter_cycles,
1050 unsigned int multi_enter_cycle_cnt,
1051 unsigned int multi_exit_cycles,
1052 unsigned int multi_exit_cycle_cnt, unsigned int timer_rate,
1053 unsigned int mode),
1054 TP_ARGS(cpu, single_enter_cycles, single_enter_cycle_cnt,
1055 single_exit_cycles, single_exit_cycle_cnt, multi_enter_cycles,
1056 multi_enter_cycle_cnt, multi_exit_cycles, multi_exit_cycle_cnt,
1057 timer_rate, mode)
1058);
1059
1060DEFINE_EVENT(timer_status, single_cycle_exit_timer_stop,
1061 TP_PROTO(unsigned int cpu, unsigned int single_enter_cycles,
1062 unsigned int single_enter_cycle_cnt,
1063 unsigned int single_exit_cycles,
1064 unsigned int single_exit_cycle_cnt,
1065 unsigned int multi_enter_cycles,
1066 unsigned int multi_enter_cycle_cnt,
1067 unsigned int multi_exit_cycles,
1068 unsigned int multi_exit_cycle_cnt, unsigned int timer_rate,
1069 unsigned int mode),
1070 TP_ARGS(cpu, single_enter_cycles, single_enter_cycle_cnt,
1071 single_exit_cycles, single_exit_cycle_cnt, multi_enter_cycles,
1072 multi_enter_cycle_cnt, multi_exit_cycles, multi_exit_cycle_cnt,
1073 timer_rate, mode)
1074);
1075
1076DECLARE_EVENT_CLASS(perf_cl_peak_timer_status,
1077 TP_PROTO(unsigned int cpu, unsigned int perf_cl_peak_enter_cycles,
1078 unsigned int perf_cl_peak_enter_cycle_cnt,
1079 unsigned int perf_cl_peak_exit_cycles,
1080 unsigned int perf_cl_peak_exit_cycle_cnt,
1081 unsigned int timer_rate,
1082 unsigned int mode),
1083 TP_ARGS(cpu, perf_cl_peak_enter_cycles, perf_cl_peak_enter_cycle_cnt,
1084 perf_cl_peak_exit_cycles, perf_cl_peak_exit_cycle_cnt,
1085 timer_rate, mode),
1086
1087 TP_STRUCT__entry(
1088 __field(unsigned int, cpu)
1089 __field(unsigned int, perf_cl_peak_enter_cycles)
1090 __field(unsigned int, perf_cl_peak_enter_cycle_cnt)
1091 __field(unsigned int, perf_cl_peak_exit_cycles)
1092 __field(unsigned int, perf_cl_peak_exit_cycle_cnt)
1093 __field(unsigned int, timer_rate)
1094 __field(unsigned int, mode)
1095 ),
1096
1097 TP_fast_assign(
1098 __entry->cpu = cpu;
1099 __entry->perf_cl_peak_enter_cycles = perf_cl_peak_enter_cycles;
1100 __entry->perf_cl_peak_enter_cycle_cnt =
1101 perf_cl_peak_enter_cycle_cnt;
1102 __entry->perf_cl_peak_exit_cycles = perf_cl_peak_exit_cycles;
1103 __entry->perf_cl_peak_exit_cycle_cnt =
1104 perf_cl_peak_exit_cycle_cnt;
1105 __entry->timer_rate = timer_rate;
1106 __entry->mode = mode;
1107 ),
1108
1109 TP_printk("%u:%4u:%4u:%4u:%4u:%4u:%4u",
1110 (unsigned int) __entry->cpu,
1111 (unsigned int) __entry->perf_cl_peak_enter_cycles,
1112 (unsigned int) __entry->perf_cl_peak_enter_cycle_cnt,
1113 (unsigned int) __entry->perf_cl_peak_exit_cycles,
1114 (unsigned int) __entry->perf_cl_peak_exit_cycle_cnt,
1115 (unsigned int) __entry->timer_rate,
1116 (unsigned int) __entry->mode)
1117);
1118
1119DEFINE_EVENT(perf_cl_peak_timer_status, perf_cl_peak_exit_timer_start,
1120 TP_PROTO(unsigned int cpu, unsigned int perf_cl_peak_enter_cycles,
1121 unsigned int perf_cl_peak_enter_cycle_cnt,
1122 unsigned int perf_cl_peak_exit_cycles,
1123 unsigned int perf_cl_peak_exit_cycle_cnt,
1124 unsigned int timer_rate,
1125 unsigned int mode),
1126 TP_ARGS(cpu, perf_cl_peak_enter_cycles, perf_cl_peak_enter_cycle_cnt,
1127 perf_cl_peak_exit_cycles, perf_cl_peak_exit_cycle_cnt,
1128 timer_rate, mode)
1129);
1130
1131
1132DEFINE_EVENT(perf_cl_peak_timer_status, perf_cl_peak_exit_timer_stop,
1133 TP_PROTO(unsigned int cpu, unsigned int perf_cl_peak_enter_cycles,
1134 unsigned int perf_cl_peak_enter_cycle_cnt,
1135 unsigned int perf_cl_peak_exit_cycles,
1136 unsigned int perf_cl_peak_exit_cycle_cnt,
1137 unsigned int timer_rate,
1138 unsigned int mode),
1139 TP_ARGS(cpu, perf_cl_peak_enter_cycles, perf_cl_peak_enter_cycle_cnt,
1140 perf_cl_peak_exit_cycles, perf_cl_peak_exit_cycle_cnt,
1141 timer_rate, mode)
1142);
1143
Arjan van de Ven61613522009-09-17 16:11:28 +02001144#endif /* _TRACE_POWER_H */
1145
1146/* This part must be outside protection */
1147#include <trace/define_trace.h>