1 #undef TRACE_SYSTEM
2 #define TRACE_SYSTEM irq_matrix
3
4 #if !defined(_TRACE_IRQ_MATRIX_H) || defined(TRACE_HEADER_MULTI_READ)
5 #define _TRACE_IRQ_MATRIX_H
6
7 #include <linux/tracepoint.h>
8
9 struct irq_matrix;
10 struct cpumap;
11
12 DECLARE_EVENT_CLASS(irq_matrix_global,
13
14 TP_PROTO(struct irq_matrix *matrix),
15
16 TP_ARGS(matrix),
17
18 TP_STRUCT__entry(
19 __field( unsigned int, online_maps )
20 __field( unsigned int, global_available )
21 __field( unsigned int, global_reserved )
22 __field( unsigned int, total_allocated )
23 ),
24
25 TP_fast_assign(
26 __entry->online_maps = matrix->online_maps;
27 __entry->global_available = matrix->global_available;
28 __entry->global_reserved = matrix->global_reserved;
29 __entry->total_allocated = matrix->total_allocated;
30 ),
31
32 TP_printk("online_maps=%d global_avl=%u, global_rsvd=%u, total_alloc=%u",
33 __entry->online_maps, __entry->global_available,
34 __entry->global_reserved, __entry->total_allocated)
35 );
36
37 DECLARE_EVENT_CLASS(irq_matrix_global_update,
38
39 TP_PROTO(int bit, struct irq_matrix *matrix),
40
41 TP_ARGS(bit, matrix),
42
43 TP_STRUCT__entry(
44 __field( int, bit )
45 __field( unsigned int, online_maps )
46 __field( unsigned int, global_available )
47 __field( unsigned int, global_reserved )
48 __field( unsigned int, total_allocated )
49 ),
50
51 TP_fast_assign(
52 __entry->bit = bit;
53 __entry->online_maps = matrix->online_maps;
54 __entry->global_available = matrix->global_available;
55 __entry->global_reserved = matrix->global_reserved;
56 __entry->total_allocated = matrix->total_allocated;
57 ),
58
59 TP_printk("bit=%d online_maps=%d global_avl=%u, global_rsvd=%u, total_alloc=%u",
60 __entry->bit, __entry->online_maps,
61 __entry->global_available, __entry->global_reserved,
62 __entry->total_allocated)
63 );
64
65 DECLARE_EVENT_CLASS(irq_matrix_cpu,
66
67 TP_PROTO(int bit, unsigned int cpu, struct irq_matrix *matrix,
68 struct cpumap *cmap),
69
70 TP_ARGS(bit, cpu, matrix, cmap),
71
72 TP_STRUCT__entry(
73 __field( int, bit )
74 __field( unsigned int, cpu )
75 __field( bool, online )
76 __field( unsigned int, available )
77 __field( unsigned int, allocated )
78 __field( unsigned int, managed )
79 __field( unsigned int, online_maps )
80 __field( unsigned int, global_available )
81 __field( unsigned int, global_reserved )
82 __field( unsigned int, total_allocated )
83 ),
84
85 TP_fast_assign(
86 __entry->bit = bit;
87 __entry->cpu = cpu;
88 __entry->online = cmap->online;
89 __entry->available = cmap->available;
90 __entry->allocated = cmap->allocated;
91 __entry->managed = cmap->managed;
92 __entry->online_maps = matrix->online_maps;
93 __entry->global_available = matrix->global_available;
94 __entry->global_reserved = matrix->global_reserved;
95 __entry->total_allocated = matrix->total_allocated;
96 ),
97
98 TP_printk("bit=%d cpu=%u online=%d avl=%u alloc=%u managed=%u online_maps=%u global_avl=%u, global_rsvd=%u, total_alloc=%u",
99 __entry->bit, __entry->cpu, __entry->online,
100 __entry->available, __entry->allocated,
101 __entry->managed, __entry->online_maps,
102 __entry->global_available, __entry->global_reserved,
103 __entry->total_allocated)
104 );
105
106 DEFINE_EVENT(irq_matrix_global, irq_matrix_online,
107
108 TP_PROTO(struct irq_matrix *matrix),
109
110 TP_ARGS(matrix)
111 );
112
113 DEFINE_EVENT(irq_matrix_global, irq_matrix_offline,
114
115 TP_PROTO(struct irq_matrix *matrix),
116
117 TP_ARGS(matrix)
118 );
119
120 DEFINE_EVENT(irq_matrix_global, irq_matrix_reserve,
121
122 TP_PROTO(struct irq_matrix *matrix),
123
124 TP_ARGS(matrix)
125 );
126
127 DEFINE_EVENT(irq_matrix_global, irq_matrix_remove_reserved,
128
129 TP_PROTO(struct irq_matrix *matrix),
130
131 TP_ARGS(matrix)
132 );
133
134 DEFINE_EVENT(irq_matrix_global_update, irq_matrix_assign_system,
135
136 TP_PROTO(int bit, struct irq_matrix *matrix),
137
138 TP_ARGS(bit, matrix)
139 );
140
141 DEFINE_EVENT(irq_matrix_cpu, irq_matrix_alloc_reserved,
142
143 TP_PROTO(int bit, unsigned int cpu,
144 struct irq_matrix *matrix, struct cpumap *cmap),
145
146 TP_ARGS(bit, cpu, matrix, cmap)
147 );
148
149 DEFINE_EVENT(irq_matrix_cpu, irq_matrix_reserve_managed,
150
151 TP_PROTO(int bit, unsigned int cpu,
152 struct irq_matrix *matrix, struct cpumap *cmap),
153
154 TP_ARGS(bit, cpu, matrix, cmap)
155 );
156
157 DEFINE_EVENT(irq_matrix_cpu, irq_matrix_remove_managed,
158
159 TP_PROTO(int bit, unsigned int cpu,
160 struct irq_matrix *matrix, struct cpumap *cmap),
161
162 TP_ARGS(bit, cpu, matrix, cmap)
163 );
164
165 DEFINE_EVENT(irq_matrix_cpu, irq_matrix_alloc_managed,
166
167 TP_PROTO(int bit, unsigned int cpu,
168 struct irq_matrix *matrix, struct cpumap *cmap),
169
170 TP_ARGS(bit, cpu, matrix, cmap)
171 );
172
173 DEFINE_EVENT(irq_matrix_cpu, irq_matrix_assign,
174
175 TP_PROTO(int bit, unsigned int cpu,
176 struct irq_matrix *matrix, struct cpumap *cmap),
177
178 TP_ARGS(bit, cpu, matrix, cmap)
179 );
180
181 DEFINE_EVENT(irq_matrix_cpu, irq_matrix_alloc,
182
183 TP_PROTO(int bit, unsigned int cpu,
184 struct irq_matrix *matrix, struct cpumap *cmap),
185
186 TP_ARGS(bit, cpu, matrix, cmap)
187 );
188
189 DEFINE_EVENT(irq_matrix_cpu, irq_matrix_free,
190
191 TP_PROTO(int bit, unsigned int cpu,
192 struct irq_matrix *matrix, struct cpumap *cmap),
193
194 TP_ARGS(bit, cpu, matrix, cmap)
195 );
196
197
198 #endif
199
200
201 #include <trace/define_trace.h>