xref: /openbmc/linux/include/trace/events/osnoise.h (revision 762f99f4f3cb41a775b5157dd761217beba65873)
1bce29ac9SDaniel Bristot de Oliveira /* SPDX-License-Identifier: GPL-2.0 */
2bce29ac9SDaniel Bristot de Oliveira #undef TRACE_SYSTEM
3bce29ac9SDaniel Bristot de Oliveira #define TRACE_SYSTEM osnoise
4bce29ac9SDaniel Bristot de Oliveira 
5bce29ac9SDaniel Bristot de Oliveira #if !defined(_OSNOISE_TRACE_H) || defined(TRACE_HEADER_MULTI_READ)
6bce29ac9SDaniel Bristot de Oliveira #define _OSNOISE_TRACE_H
7bce29ac9SDaniel Bristot de Oliveira 
8bce29ac9SDaniel Bristot de Oliveira #include <linux/tracepoint.h>
9bce29ac9SDaniel Bristot de Oliveira TRACE_EVENT(thread_noise,
10bce29ac9SDaniel Bristot de Oliveira 
11bce29ac9SDaniel Bristot de Oliveira 	TP_PROTO(struct task_struct *t, u64 start, u64 duration),
12bce29ac9SDaniel Bristot de Oliveira 
13bce29ac9SDaniel Bristot de Oliveira 	TP_ARGS(t, start, duration),
14bce29ac9SDaniel Bristot de Oliveira 
15bce29ac9SDaniel Bristot de Oliveira 	TP_STRUCT__entry(
16bce29ac9SDaniel Bristot de Oliveira 		__array(	char,		comm,	TASK_COMM_LEN)
17bce29ac9SDaniel Bristot de Oliveira 		__field(	u64,		start	)
18bce29ac9SDaniel Bristot de Oliveira 		__field(	u64,		duration)
19bce29ac9SDaniel Bristot de Oliveira 		__field(	pid_t,		pid	)
20bce29ac9SDaniel Bristot de Oliveira 	),
21bce29ac9SDaniel Bristot de Oliveira 
22bce29ac9SDaniel Bristot de Oliveira 	TP_fast_assign(
23bce29ac9SDaniel Bristot de Oliveira 		memcpy(__entry->comm, t->comm, TASK_COMM_LEN);
24bce29ac9SDaniel Bristot de Oliveira 		__entry->pid = t->pid;
25bce29ac9SDaniel Bristot de Oliveira 		__entry->start = start;
26bce29ac9SDaniel Bristot de Oliveira 		__entry->duration = duration;
27bce29ac9SDaniel Bristot de Oliveira 	),
28bce29ac9SDaniel Bristot de Oliveira 
29bce29ac9SDaniel Bristot de Oliveira 	TP_printk("%8s:%d start %llu.%09u duration %llu ns",
30bce29ac9SDaniel Bristot de Oliveira 		__entry->comm,
31bce29ac9SDaniel Bristot de Oliveira 		__entry->pid,
32bce29ac9SDaniel Bristot de Oliveira 		__print_ns_to_secs(__entry->start),
33bce29ac9SDaniel Bristot de Oliveira 		__print_ns_without_secs(__entry->start),
34bce29ac9SDaniel Bristot de Oliveira 		__entry->duration)
35bce29ac9SDaniel Bristot de Oliveira );
36bce29ac9SDaniel Bristot de Oliveira 
37bce29ac9SDaniel Bristot de Oliveira TRACE_EVENT(softirq_noise,
38bce29ac9SDaniel Bristot de Oliveira 
39bce29ac9SDaniel Bristot de Oliveira 	TP_PROTO(int vector, u64 start, u64 duration),
40bce29ac9SDaniel Bristot de Oliveira 
41bce29ac9SDaniel Bristot de Oliveira 	TP_ARGS(vector, start, duration),
42bce29ac9SDaniel Bristot de Oliveira 
43bce29ac9SDaniel Bristot de Oliveira 	TP_STRUCT__entry(
44bce29ac9SDaniel Bristot de Oliveira 		__field(	u64,		start	)
45bce29ac9SDaniel Bristot de Oliveira 		__field(	u64,		duration)
46bce29ac9SDaniel Bristot de Oliveira 		__field(	int,		vector	)
47bce29ac9SDaniel Bristot de Oliveira 	),
48bce29ac9SDaniel Bristot de Oliveira 
49bce29ac9SDaniel Bristot de Oliveira 	TP_fast_assign(
50bce29ac9SDaniel Bristot de Oliveira 		__entry->vector = vector;
51bce29ac9SDaniel Bristot de Oliveira 		__entry->start = start;
52bce29ac9SDaniel Bristot de Oliveira 		__entry->duration = duration;
53bce29ac9SDaniel Bristot de Oliveira 	),
54bce29ac9SDaniel Bristot de Oliveira 
55bce29ac9SDaniel Bristot de Oliveira 	TP_printk("%8s:%d start %llu.%09u duration %llu ns",
56bce29ac9SDaniel Bristot de Oliveira 		show_softirq_name(__entry->vector),
57bce29ac9SDaniel Bristot de Oliveira 		__entry->vector,
58bce29ac9SDaniel Bristot de Oliveira 		__print_ns_to_secs(__entry->start),
59bce29ac9SDaniel Bristot de Oliveira 		__print_ns_without_secs(__entry->start),
60bce29ac9SDaniel Bristot de Oliveira 		__entry->duration)
61bce29ac9SDaniel Bristot de Oliveira );
62bce29ac9SDaniel Bristot de Oliveira 
63bce29ac9SDaniel Bristot de Oliveira TRACE_EVENT(irq_noise,
64bce29ac9SDaniel Bristot de Oliveira 
65bce29ac9SDaniel Bristot de Oliveira 	TP_PROTO(int vector, const char *desc, u64 start, u64 duration),
66bce29ac9SDaniel Bristot de Oliveira 
67bce29ac9SDaniel Bristot de Oliveira 	TP_ARGS(vector, desc, start, duration),
68bce29ac9SDaniel Bristot de Oliveira 
69bce29ac9SDaniel Bristot de Oliveira 	TP_STRUCT__entry(
70bce29ac9SDaniel Bristot de Oliveira 		__field(	u64,		start	)
71bce29ac9SDaniel Bristot de Oliveira 		__field(	u64,		duration)
72bce29ac9SDaniel Bristot de Oliveira 		__string(	desc,		desc    )
73bce29ac9SDaniel Bristot de Oliveira 		__field(	int,		vector	)
74bce29ac9SDaniel Bristot de Oliveira 
75bce29ac9SDaniel Bristot de Oliveira 	),
76bce29ac9SDaniel Bristot de Oliveira 
77bce29ac9SDaniel Bristot de Oliveira 	TP_fast_assign(
78bce29ac9SDaniel Bristot de Oliveira 		__assign_str(desc, desc);
79bce29ac9SDaniel Bristot de Oliveira 		__entry->vector = vector;
80bce29ac9SDaniel Bristot de Oliveira 		__entry->start = start;
81bce29ac9SDaniel Bristot de Oliveira 		__entry->duration = duration;
82bce29ac9SDaniel Bristot de Oliveira 	),
83bce29ac9SDaniel Bristot de Oliveira 
84bce29ac9SDaniel Bristot de Oliveira 	TP_printk("%s:%d start %llu.%09u duration %llu ns",
85bce29ac9SDaniel Bristot de Oliveira 		__get_str(desc),
86bce29ac9SDaniel Bristot de Oliveira 		__entry->vector,
87bce29ac9SDaniel Bristot de Oliveira 		__print_ns_to_secs(__entry->start),
88bce29ac9SDaniel Bristot de Oliveira 		__print_ns_without_secs(__entry->start),
89bce29ac9SDaniel Bristot de Oliveira 		__entry->duration)
90bce29ac9SDaniel Bristot de Oliveira );
91bce29ac9SDaniel Bristot de Oliveira 
92bce29ac9SDaniel Bristot de Oliveira TRACE_EVENT(nmi_noise,
93bce29ac9SDaniel Bristot de Oliveira 
94bce29ac9SDaniel Bristot de Oliveira 	TP_PROTO(u64 start, u64 duration),
95bce29ac9SDaniel Bristot de Oliveira 
96bce29ac9SDaniel Bristot de Oliveira 	TP_ARGS(start, duration),
97bce29ac9SDaniel Bristot de Oliveira 
98bce29ac9SDaniel Bristot de Oliveira 	TP_STRUCT__entry(
99bce29ac9SDaniel Bristot de Oliveira 		__field(	u64,		start	)
100bce29ac9SDaniel Bristot de Oliveira 		__field(	u64,		duration)
101bce29ac9SDaniel Bristot de Oliveira 	),
102bce29ac9SDaniel Bristot de Oliveira 
103bce29ac9SDaniel Bristot de Oliveira 	TP_fast_assign(
104bce29ac9SDaniel Bristot de Oliveira 		__entry->start = start;
105bce29ac9SDaniel Bristot de Oliveira 		__entry->duration = duration;
106bce29ac9SDaniel Bristot de Oliveira 	),
107bce29ac9SDaniel Bristot de Oliveira 
108bce29ac9SDaniel Bristot de Oliveira 	TP_printk("start %llu.%09u duration %llu ns",
109bce29ac9SDaniel Bristot de Oliveira 		__print_ns_to_secs(__entry->start),
110bce29ac9SDaniel Bristot de Oliveira 		__print_ns_without_secs(__entry->start),
111bce29ac9SDaniel Bristot de Oliveira 		__entry->duration)
112bce29ac9SDaniel Bristot de Oliveira );
113bce29ac9SDaniel Bristot de Oliveira 
114bce29ac9SDaniel Bristot de Oliveira TRACE_EVENT(sample_threshold,
115bce29ac9SDaniel Bristot de Oliveira 
116bce29ac9SDaniel Bristot de Oliveira 	TP_PROTO(u64 start, u64 duration, u64 interference),
117bce29ac9SDaniel Bristot de Oliveira 
118bce29ac9SDaniel Bristot de Oliveira 	TP_ARGS(start, duration, interference),
119bce29ac9SDaniel Bristot de Oliveira 
120bce29ac9SDaniel Bristot de Oliveira 	TP_STRUCT__entry(
121bce29ac9SDaniel Bristot de Oliveira 		__field(	u64,		start	)
122bce29ac9SDaniel Bristot de Oliveira 		__field(	u64,		duration)
123bce29ac9SDaniel Bristot de Oliveira 		__field(	u64,		interference)
124bce29ac9SDaniel Bristot de Oliveira 	),
125bce29ac9SDaniel Bristot de Oliveira 
126bce29ac9SDaniel Bristot de Oliveira 	TP_fast_assign(
127bce29ac9SDaniel Bristot de Oliveira 		__entry->start = start;
128bce29ac9SDaniel Bristot de Oliveira 		__entry->duration = duration;
129bce29ac9SDaniel Bristot de Oliveira 		__entry->interference = interference;
130bce29ac9SDaniel Bristot de Oliveira 	),
131bce29ac9SDaniel Bristot de Oliveira 
132*b62613b4SColin Ian King 	TP_printk("start %llu.%09u duration %llu ns interference %llu",
133bce29ac9SDaniel Bristot de Oliveira 		__print_ns_to_secs(__entry->start),
134bce29ac9SDaniel Bristot de Oliveira 		__print_ns_without_secs(__entry->start),
135bce29ac9SDaniel Bristot de Oliveira 		__entry->duration,
136bce29ac9SDaniel Bristot de Oliveira 		__entry->interference)
137bce29ac9SDaniel Bristot de Oliveira );
138bce29ac9SDaniel Bristot de Oliveira 
139bce29ac9SDaniel Bristot de Oliveira #endif /* _TRACE_OSNOISE_H */
140bce29ac9SDaniel Bristot de Oliveira 
141bce29ac9SDaniel Bristot de Oliveira /* This part must be outside protection */
142bce29ac9SDaniel Bristot de Oliveira #include <trace/define_trace.h>
143