202 lines
4.9 KiB
C
202 lines
4.9 KiB
C
#undef TRACE_SYSTEM
|
|
#define TRACE_SYSTEM irq_matrix
|
|
|
|
#if !defined(_TRACE_IRQ_MATRIX_H) || defined(TRACE_HEADER_MULTI_READ)
|
|
#define _TRACE_IRQ_MATRIX_H
|
|
|
|
#include <linux/tracepoint.h>
|
|
|
|
struct irq_matrix;
|
|
struct cpumap;
|
|
|
|
DECLARE_EVENT_CLASS(irq_matrix_global,
|
|
|
|
TP_PROTO(struct irq_matrix *matrix),
|
|
|
|
TP_ARGS(matrix),
|
|
|
|
TP_STRUCT__entry(
|
|
__field( unsigned int, online_maps )
|
|
__field( unsigned int, global_available )
|
|
__field( unsigned int, global_reserved )
|
|
__field( unsigned int, total_allocated )
|
|
),
|
|
|
|
TP_fast_assign(
|
|
__entry->online_maps = matrix->online_maps;
|
|
__entry->global_available = matrix->global_available;
|
|
__entry->global_reserved = matrix->global_reserved;
|
|
__entry->total_allocated = matrix->total_allocated;
|
|
),
|
|
|
|
TP_printk("online_maps=%d global_avl=%u, global_rsvd=%u, total_alloc=%u",
|
|
__entry->online_maps, __entry->global_available,
|
|
__entry->global_reserved, __entry->total_allocated)
|
|
);
|
|
|
|
DECLARE_EVENT_CLASS(irq_matrix_global_update,
|
|
|
|
TP_PROTO(int bit, struct irq_matrix *matrix),
|
|
|
|
TP_ARGS(bit, matrix),
|
|
|
|
TP_STRUCT__entry(
|
|
__field( int, bit )
|
|
__field( unsigned int, online_maps )
|
|
__field( unsigned int, global_available )
|
|
__field( unsigned int, global_reserved )
|
|
__field( unsigned int, total_allocated )
|
|
),
|
|
|
|
TP_fast_assign(
|
|
__entry->bit = bit;
|
|
__entry->online_maps = matrix->online_maps;
|
|
__entry->global_available = matrix->global_available;
|
|
__entry->global_reserved = matrix->global_reserved;
|
|
__entry->total_allocated = matrix->total_allocated;
|
|
),
|
|
|
|
TP_printk("bit=%d online_maps=%d global_avl=%u, global_rsvd=%u, total_alloc=%u",
|
|
__entry->bit, __entry->online_maps,
|
|
__entry->global_available, __entry->global_reserved,
|
|
__entry->total_allocated)
|
|
);
|
|
|
|
DECLARE_EVENT_CLASS(irq_matrix_cpu,
|
|
|
|
TP_PROTO(int bit, unsigned int cpu, struct irq_matrix *matrix,
|
|
struct cpumap *cmap),
|
|
|
|
TP_ARGS(bit, cpu, matrix, cmap),
|
|
|
|
TP_STRUCT__entry(
|
|
__field( int, bit )
|
|
__field( unsigned int, cpu )
|
|
__field( bool, online )
|
|
__field( unsigned int, available )
|
|
__field( unsigned int, allocated )
|
|
__field( unsigned int, managed )
|
|
__field( unsigned int, online_maps )
|
|
__field( unsigned int, global_available )
|
|
__field( unsigned int, global_reserved )
|
|
__field( unsigned int, total_allocated )
|
|
),
|
|
|
|
TP_fast_assign(
|
|
__entry->bit = bit;
|
|
__entry->cpu = cpu;
|
|
__entry->online = cmap->online;
|
|
__entry->available = cmap->available;
|
|
__entry->allocated = cmap->allocated;
|
|
__entry->managed = cmap->managed;
|
|
__entry->online_maps = matrix->online_maps;
|
|
__entry->global_available = matrix->global_available;
|
|
__entry->global_reserved = matrix->global_reserved;
|
|
__entry->total_allocated = matrix->total_allocated;
|
|
),
|
|
|
|
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",
|
|
__entry->bit, __entry->cpu, __entry->online,
|
|
__entry->available, __entry->allocated,
|
|
__entry->managed, __entry->online_maps,
|
|
__entry->global_available, __entry->global_reserved,
|
|
__entry->total_allocated)
|
|
);
|
|
|
|
DEFINE_EVENT(irq_matrix_global, irq_matrix_online,
|
|
|
|
TP_PROTO(struct irq_matrix *matrix),
|
|
|
|
TP_ARGS(matrix)
|
|
);
|
|
|
|
DEFINE_EVENT(irq_matrix_global, irq_matrix_offline,
|
|
|
|
TP_PROTO(struct irq_matrix *matrix),
|
|
|
|
TP_ARGS(matrix)
|
|
);
|
|
|
|
DEFINE_EVENT(irq_matrix_global, irq_matrix_reserve,
|
|
|
|
TP_PROTO(struct irq_matrix *matrix),
|
|
|
|
TP_ARGS(matrix)
|
|
);
|
|
|
|
DEFINE_EVENT(irq_matrix_global, irq_matrix_remove_reserved,
|
|
|
|
TP_PROTO(struct irq_matrix *matrix),
|
|
|
|
TP_ARGS(matrix)
|
|
);
|
|
|
|
DEFINE_EVENT(irq_matrix_global_update, irq_matrix_assign_system,
|
|
|
|
TP_PROTO(int bit, struct irq_matrix *matrix),
|
|
|
|
TP_ARGS(bit, matrix)
|
|
);
|
|
|
|
DEFINE_EVENT(irq_matrix_cpu, irq_matrix_alloc_reserved,
|
|
|
|
TP_PROTO(int bit, unsigned int cpu,
|
|
struct irq_matrix *matrix, struct cpumap *cmap),
|
|
|
|
TP_ARGS(bit, cpu, matrix, cmap)
|
|
);
|
|
|
|
DEFINE_EVENT(irq_matrix_cpu, irq_matrix_reserve_managed,
|
|
|
|
TP_PROTO(int bit, unsigned int cpu,
|
|
struct irq_matrix *matrix, struct cpumap *cmap),
|
|
|
|
TP_ARGS(bit, cpu, matrix, cmap)
|
|
);
|
|
|
|
DEFINE_EVENT(irq_matrix_cpu, irq_matrix_remove_managed,
|
|
|
|
TP_PROTO(int bit, unsigned int cpu,
|
|
struct irq_matrix *matrix, struct cpumap *cmap),
|
|
|
|
TP_ARGS(bit, cpu, matrix, cmap)
|
|
);
|
|
|
|
DEFINE_EVENT(irq_matrix_cpu, irq_matrix_alloc_managed,
|
|
|
|
TP_PROTO(int bit, unsigned int cpu,
|
|
struct irq_matrix *matrix, struct cpumap *cmap),
|
|
|
|
TP_ARGS(bit, cpu, matrix, cmap)
|
|
);
|
|
|
|
DEFINE_EVENT(irq_matrix_cpu, irq_matrix_assign,
|
|
|
|
TP_PROTO(int bit, unsigned int cpu,
|
|
struct irq_matrix *matrix, struct cpumap *cmap),
|
|
|
|
TP_ARGS(bit, cpu, matrix, cmap)
|
|
);
|
|
|
|
DEFINE_EVENT(irq_matrix_cpu, irq_matrix_alloc,
|
|
|
|
TP_PROTO(int bit, unsigned int cpu,
|
|
struct irq_matrix *matrix, struct cpumap *cmap),
|
|
|
|
TP_ARGS(bit, cpu, matrix, cmap)
|
|
);
|
|
|
|
DEFINE_EVENT(irq_matrix_cpu, irq_matrix_free,
|
|
|
|
TP_PROTO(int bit, unsigned int cpu,
|
|
struct irq_matrix *matrix, struct cpumap *cmap),
|
|
|
|
TP_ARGS(bit, cpu, matrix, cmap)
|
|
);
|
|
|
|
|
|
#endif /* _TRACE_IRQ_H */
|
|
|
|
/* This part must be outside protection */
|
|
#include <trace/define_trace.h>
|