1 #undef TRACE_SYSTEM 2 #define TRACE_SYSTEM irq_vectors 3 4 #if !defined(_TRACE_IRQ_VECTORS_H) || defined(TRACE_HEADER_MULTI_READ) 5 #define _TRACE_IRQ_VECTORS_H 6 7 #include <linux/tracepoint.h> 8 9 extern void trace_irq_vector_regfunc(void); 10 extern void trace_irq_vector_unregfunc(void); 11 12 DECLARE_EVENT_CLASS(x86_irq_vector, 13 14 TP_PROTO(int vector), 15 16 TP_ARGS(vector), 17 18 TP_STRUCT__entry( 19 __field( int, vector ) 20 ), 21 22 TP_fast_assign( 23 __entry->vector = vector; 24 ), 25 26 TP_printk("vector=%d", __entry->vector) ); 27 28 #define DEFINE_IRQ_VECTOR_EVENT(name) \ 29 DEFINE_EVENT_FN(x86_irq_vector, name##_entry, \ 30 TP_PROTO(int vector), \ 31 TP_ARGS(vector), \ 32 trace_irq_vector_regfunc, \ 33 trace_irq_vector_unregfunc); \ 34 DEFINE_EVENT_FN(x86_irq_vector, name##_exit, \ 35 TP_PROTO(int vector), \ 36 TP_ARGS(vector), \ 37 trace_irq_vector_regfunc, \ 38 trace_irq_vector_unregfunc); 39 40 41 /* 42 * local_timer - called when entering/exiting a local timer interrupt 43 * vector handler 44 */ 45 DEFINE_IRQ_VECTOR_EVENT(local_timer); 46 47 /* 48 * reschedule - called when entering/exiting a reschedule vector handler 49 */ 50 DEFINE_IRQ_VECTOR_EVENT(reschedule); 51 52 /* 53 * spurious_apic - called when entering/exiting a spurious apic vector handler 54 */ 55 DEFINE_IRQ_VECTOR_EVENT(spurious_apic); 56 57 /* 58 * error_apic - called when entering/exiting an error apic vector handler 59 */ 60 DEFINE_IRQ_VECTOR_EVENT(error_apic); 61 62 /* 63 * x86_platform_ipi - called when entering/exiting a x86 platform ipi interrupt 64 * vector handler 65 */ 66 DEFINE_IRQ_VECTOR_EVENT(x86_platform_ipi); 67 68 /* 69 * irq_work - called when entering/exiting a irq work interrupt 70 * vector handler 71 */ 72 DEFINE_IRQ_VECTOR_EVENT(irq_work); 73 74 /* 75 * call_function - called when entering/exiting a call function interrupt 76 * vector handler 77 */ 78 DEFINE_IRQ_VECTOR_EVENT(call_function); 79 80 /* 81 * call_function_single - called when entering/exiting a call function 82 * single interrupt vector handler 83 */ 84 DEFINE_IRQ_VECTOR_EVENT(call_function_single); 85 86 /* 87 * threshold_apic - called when entering/exiting a threshold apic interrupt 88 * vector handler 89 */ 90 DEFINE_IRQ_VECTOR_EVENT(threshold_apic); 91 92 /* 93 * thermal_apic - called when entering/exiting a thermal apic interrupt 94 * vector handler 95 */ 96 DEFINE_IRQ_VECTOR_EVENT(thermal_apic); 97 98 #undef TRACE_INCLUDE_PATH 99 #define TRACE_INCLUDE_PATH . 100 #define TRACE_INCLUDE_FILE irq_vectors 101 #endif /* _TRACE_IRQ_VECTORS_H */ 102 103 /* This part must be outside protection */ 104 #include <trace/define_trace.h> 105