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 /* _TRACE_IRQ_H */ 199 200 /* This part must be outside protection */ 201 #include <trace/define_trace.h> 202