202 lines · c
1#undef TRACE_SYSTEM2#define TRACE_SYSTEM irq_matrix3 4#if !defined(_TRACE_IRQ_MATRIX_H) || defined(TRACE_HEADER_MULTI_READ)5#define _TRACE_IRQ_MATRIX_H6 7#include <linux/tracepoint.h>8 9struct irq_matrix;10struct cpumap;11 12DECLARE_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 37DECLARE_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 65DECLARE_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 106DEFINE_EVENT(irq_matrix_global, irq_matrix_online,107 108 TP_PROTO(struct irq_matrix *matrix),109 110 TP_ARGS(matrix)111);112 113DEFINE_EVENT(irq_matrix_global, irq_matrix_offline,114 115 TP_PROTO(struct irq_matrix *matrix),116 117 TP_ARGS(matrix)118);119 120DEFINE_EVENT(irq_matrix_global, irq_matrix_reserve,121 122 TP_PROTO(struct irq_matrix *matrix),123 124 TP_ARGS(matrix)125);126 127DEFINE_EVENT(irq_matrix_global, irq_matrix_remove_reserved,128 129 TP_PROTO(struct irq_matrix *matrix),130 131 TP_ARGS(matrix)132);133 134DEFINE_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 141DEFINE_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 149DEFINE_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 157DEFINE_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 165DEFINE_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 173DEFINE_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 181DEFINE_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 189DEFINE_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