0001 #undef TRACE_SYSTEM
0002 #define TRACE_SYSTEM irq_matrix
0003
0004 #if !defined(_TRACE_IRQ_MATRIX_H) || defined(TRACE_HEADER_MULTI_READ)
0005 #define _TRACE_IRQ_MATRIX_H
0006
0007 #include <linux/tracepoint.h>
0008
0009 struct irq_matrix;
0010 struct cpumap;
0011
0012 DECLARE_EVENT_CLASS(irq_matrix_global,
0013
0014 TP_PROTO(struct irq_matrix *matrix),
0015
0016 TP_ARGS(matrix),
0017
0018 TP_STRUCT__entry(
0019 __field( unsigned int, online_maps )
0020 __field( unsigned int, global_available )
0021 __field( unsigned int, global_reserved )
0022 __field( unsigned int, total_allocated )
0023 ),
0024
0025 TP_fast_assign(
0026 __entry->online_maps = matrix->online_maps;
0027 __entry->global_available = matrix->global_available;
0028 __entry->global_reserved = matrix->global_reserved;
0029 __entry->total_allocated = matrix->total_allocated;
0030 ),
0031
0032 TP_printk("online_maps=%d global_avl=%u, global_rsvd=%u, total_alloc=%u",
0033 __entry->online_maps, __entry->global_available,
0034 __entry->global_reserved, __entry->total_allocated)
0035 );
0036
0037 DECLARE_EVENT_CLASS(irq_matrix_global_update,
0038
0039 TP_PROTO(int bit, struct irq_matrix *matrix),
0040
0041 TP_ARGS(bit, matrix),
0042
0043 TP_STRUCT__entry(
0044 __field( int, bit )
0045 __field( unsigned int, online_maps )
0046 __field( unsigned int, global_available )
0047 __field( unsigned int, global_reserved )
0048 __field( unsigned int, total_allocated )
0049 ),
0050
0051 TP_fast_assign(
0052 __entry->bit = bit;
0053 __entry->online_maps = matrix->online_maps;
0054 __entry->global_available = matrix->global_available;
0055 __entry->global_reserved = matrix->global_reserved;
0056 __entry->total_allocated = matrix->total_allocated;
0057 ),
0058
0059 TP_printk("bit=%d online_maps=%d global_avl=%u, global_rsvd=%u, total_alloc=%u",
0060 __entry->bit, __entry->online_maps,
0061 __entry->global_available, __entry->global_reserved,
0062 __entry->total_allocated)
0063 );
0064
0065 DECLARE_EVENT_CLASS(irq_matrix_cpu,
0066
0067 TP_PROTO(int bit, unsigned int cpu, struct irq_matrix *matrix,
0068 struct cpumap *cmap),
0069
0070 TP_ARGS(bit, cpu, matrix, cmap),
0071
0072 TP_STRUCT__entry(
0073 __field( int, bit )
0074 __field( unsigned int, cpu )
0075 __field( bool, online )
0076 __field( unsigned int, available )
0077 __field( unsigned int, allocated )
0078 __field( unsigned int, managed )
0079 __field( unsigned int, online_maps )
0080 __field( unsigned int, global_available )
0081 __field( unsigned int, global_reserved )
0082 __field( unsigned int, total_allocated )
0083 ),
0084
0085 TP_fast_assign(
0086 __entry->bit = bit;
0087 __entry->cpu = cpu;
0088 __entry->online = cmap->online;
0089 __entry->available = cmap->available;
0090 __entry->allocated = cmap->allocated;
0091 __entry->managed = cmap->managed;
0092 __entry->online_maps = matrix->online_maps;
0093 __entry->global_available = matrix->global_available;
0094 __entry->global_reserved = matrix->global_reserved;
0095 __entry->total_allocated = matrix->total_allocated;
0096 ),
0097
0098 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",
0099 __entry->bit, __entry->cpu, __entry->online,
0100 __entry->available, __entry->allocated,
0101 __entry->managed, __entry->online_maps,
0102 __entry->global_available, __entry->global_reserved,
0103 __entry->total_allocated)
0104 );
0105
0106 DEFINE_EVENT(irq_matrix_global, irq_matrix_online,
0107
0108 TP_PROTO(struct irq_matrix *matrix),
0109
0110 TP_ARGS(matrix)
0111 );
0112
0113 DEFINE_EVENT(irq_matrix_global, irq_matrix_offline,
0114
0115 TP_PROTO(struct irq_matrix *matrix),
0116
0117 TP_ARGS(matrix)
0118 );
0119
0120 DEFINE_EVENT(irq_matrix_global, irq_matrix_reserve,
0121
0122 TP_PROTO(struct irq_matrix *matrix),
0123
0124 TP_ARGS(matrix)
0125 );
0126
0127 DEFINE_EVENT(irq_matrix_global, irq_matrix_remove_reserved,
0128
0129 TP_PROTO(struct irq_matrix *matrix),
0130
0131 TP_ARGS(matrix)
0132 );
0133
0134 DEFINE_EVENT(irq_matrix_global_update, irq_matrix_assign_system,
0135
0136 TP_PROTO(int bit, struct irq_matrix *matrix),
0137
0138 TP_ARGS(bit, matrix)
0139 );
0140
0141 DEFINE_EVENT(irq_matrix_cpu, irq_matrix_alloc_reserved,
0142
0143 TP_PROTO(int bit, unsigned int cpu,
0144 struct irq_matrix *matrix, struct cpumap *cmap),
0145
0146 TP_ARGS(bit, cpu, matrix, cmap)
0147 );
0148
0149 DEFINE_EVENT(irq_matrix_cpu, irq_matrix_reserve_managed,
0150
0151 TP_PROTO(int bit, unsigned int cpu,
0152 struct irq_matrix *matrix, struct cpumap *cmap),
0153
0154 TP_ARGS(bit, cpu, matrix, cmap)
0155 );
0156
0157 DEFINE_EVENT(irq_matrix_cpu, irq_matrix_remove_managed,
0158
0159 TP_PROTO(int bit, unsigned int cpu,
0160 struct irq_matrix *matrix, struct cpumap *cmap),
0161
0162 TP_ARGS(bit, cpu, matrix, cmap)
0163 );
0164
0165 DEFINE_EVENT(irq_matrix_cpu, irq_matrix_alloc_managed,
0166
0167 TP_PROTO(int bit, unsigned int cpu,
0168 struct irq_matrix *matrix, struct cpumap *cmap),
0169
0170 TP_ARGS(bit, cpu, matrix, cmap)
0171 );
0172
0173 DEFINE_EVENT(irq_matrix_cpu, irq_matrix_assign,
0174
0175 TP_PROTO(int bit, unsigned int cpu,
0176 struct irq_matrix *matrix, struct cpumap *cmap),
0177
0178 TP_ARGS(bit, cpu, matrix, cmap)
0179 );
0180
0181 DEFINE_EVENT(irq_matrix_cpu, irq_matrix_alloc,
0182
0183 TP_PROTO(int bit, unsigned int cpu,
0184 struct irq_matrix *matrix, struct cpumap *cmap),
0185
0186 TP_ARGS(bit, cpu, matrix, cmap)
0187 );
0188
0189 DEFINE_EVENT(irq_matrix_cpu, irq_matrix_free,
0190
0191 TP_PROTO(int bit, unsigned int cpu,
0192 struct irq_matrix *matrix, struct cpumap *cmap),
0193
0194 TP_ARGS(bit, cpu, matrix, cmap)
0195 );
0196
0197
0198 #endif
0199
0200
0201 #include <trace/define_trace.h>