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