aboutsummaryrefslogtreecommitdiff
path: root/include/trace/events/power_cpu_migrate.h
blob: f76dd4de625e35e32e3ea029d1ab36451e1d3444 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#undef TRACE_SYSTEM
#define TRACE_SYSTEM power

#if !defined(_TRACE_POWER_CPU_MIGRATE_H) || defined(TRACE_HEADER_MULTI_READ)
#define _TRACE_POWER_CPU_MIGRATE_H

#include <linux/tracepoint.h>

#define __cpu_migrate_proto			\
	TP_PROTO(u64 timestamp,			\
		 u32 cpu_hwid)
#define __cpu_migrate_args			\
	TP_ARGS(timestamp,			\
		cpu_hwid)

DECLARE_EVENT_CLASS(cpu_migrate,

	__cpu_migrate_proto,
	__cpu_migrate_args,

	TP_STRUCT__entry(
		__field(u64,	timestamp		)
		__field(u32,	cpu_hwid		)
	),

	TP_fast_assign(
		__entry->timestamp = timestamp;
		__entry->cpu_hwid = cpu_hwid;
	),

	TP_printk("timestamp=%llu cpu_hwid=0x%08lX",
		(unsigned long long)__entry->timestamp,
		(unsigned long)__entry->cpu_hwid
	)
);

#define __define_cpu_migrate_event(name)		\
	DEFINE_EVENT(cpu_migrate, cpu_migrate_##name,	\
		__cpu_migrate_proto,			\
		__cpu_migrate_args			\
	)

__define_cpu_migrate_event(begin);
__define_cpu_migrate_event(finish);
__define_cpu_migrate_event(current);

#undef __define_cpu_migrate
#undef __cpu_migrate_proto
#undef __cpu_migrate_args

/* This file can get included multiple times, TRACE_HEADER_MULTI_READ at top */
#ifndef _PWR_CPU_MIGRATE_EVENT_AVOID_DOUBLE_DEFINING
#define _PWR_CPU_MIGRATE_EVENT_AVOID_DOUBLE_DEFINING

/*
 * Set from_phys_cpu and to_phys_cpu to CPU_MIGRATE_ALL_CPUS to indicate
 * a whole-cluster migration:
 */
#define CPU_MIGRATE_ALL_CPUS 0x80000000U
#endif

#endif /* _TRACE_POWER_CPU_MIGRATE_H */

/* This part must be outside protection */
#undef TRACE_INCLUDE_FILE
#define TRACE_INCLUDE_FILE power_cpu_migrate
#include <trace/define_trace.h>