1 /* SPDX-License-Identifier: GPL-2.0 */
2 #undef TRACE_SYSTEM
3 #define TRACE_SYSTEM power
4 
5 #if !defined(_TRACE_POWER_CPU_MIGRATE_H) || defined(TRACE_HEADER_MULTI_READ)
6 #define _TRACE_POWER_CPU_MIGRATE_H
7 
8 #include <linux/tracepoint.h>
9 
10 #define __cpu_migrate_proto			\
11 	TP_PROTO(u64 timestamp,			\
12 		 u32 cpu_hwid)
13 #define __cpu_migrate_args			\
14 	TP_ARGS(timestamp,			\
15 		cpu_hwid)
16 
17 DECLARE_EVENT_CLASS(cpu_migrate,
18 
19 	__cpu_migrate_proto,
20 	__cpu_migrate_args,
21 
22 	TP_STRUCT__entry(
23 		__field(u64,	timestamp		)
24 		__field(u32,	cpu_hwid		)
25 	),
26 
27 	TP_fast_assign(
28 		__entry->timestamp = timestamp;
29 		__entry->cpu_hwid = cpu_hwid;
30 	),
31 
32 	TP_printk("timestamp=%llu cpu_hwid=0x%08lX",
33 		(unsigned long long)__entry->timestamp,
34 		(unsigned long)__entry->cpu_hwid
35 	)
36 );
37 
38 #define __define_cpu_migrate_event(name)		\
39 	DEFINE_EVENT(cpu_migrate, cpu_migrate_##name,	\
40 		__cpu_migrate_proto,			\
41 		__cpu_migrate_args			\
42 	)
43 
44 __define_cpu_migrate_event(begin);
45 __define_cpu_migrate_event(finish);
46 __define_cpu_migrate_event(current);
47 
48 #undef __define_cpu_migrate
49 #undef __cpu_migrate_proto
50 #undef __cpu_migrate_args
51 
52 /* This file can get included multiple times, TRACE_HEADER_MULTI_READ at top */
53 #ifndef _PWR_CPU_MIGRATE_EVENT_AVOID_DOUBLE_DEFINING
54 #define _PWR_CPU_MIGRATE_EVENT_AVOID_DOUBLE_DEFINING
55 
56 /*
57  * Set from_phys_cpu and to_phys_cpu to CPU_MIGRATE_ALL_CPUS to indicate
58  * a whole-cluster migration:
59  */
60 #define CPU_MIGRATE_ALL_CPUS 0x80000000U
61 #endif
62 
63 #endif /* _TRACE_POWER_CPU_MIGRATE_H */
64 
65 /* This part must be outside protection */
66 #undef TRACE_INCLUDE_FILE
67 #define TRACE_INCLUDE_FILE power_cpu_migrate
68 #include <trace/define_trace.h>
69