1 #undef TRACE_SYSTEM 2 #define TRACE_SYSTEM ipi 3 4 #if !defined(_TRACE_IPI_H) || defined(TRACE_HEADER_MULTI_READ) 5 #define _TRACE_IPI_H 6 7 #include <linux/tracepoint.h> 8 9 /** 10 * ipi_raise - called when a smp cross call is made 11 * 12 * @mask: mask of recipient CPUs for the IPI 13 * @reason: string identifying the IPI purpose 14 * 15 * It is necessary for @reason to be a static string declared with 16 * __tracepoint_string. 17 */ 18 TRACE_EVENT(ipi_raise, 19 20 TP_PROTO(const struct cpumask *mask, const char *reason), 21 22 TP_ARGS(mask, reason), 23 24 TP_STRUCT__entry( 25 __bitmask(target_cpus, nr_cpumask_bits) 26 __field(const char *, reason) 27 ), 28 29 TP_fast_assign( 30 __assign_bitmask(target_cpus, cpumask_bits(mask), nr_cpumask_bits); 31 __entry->reason = reason; 32 ), 33 34 TP_printk("target_mask=%s (%s)", __get_bitmask(target_cpus), __entry->reason) 35 ); 36 37 DECLARE_EVENT_CLASS(ipi_handler, 38 39 TP_PROTO(const char *reason), 40 41 TP_ARGS(reason), 42 43 TP_STRUCT__entry( 44 __field(const char *, reason) 45 ), 46 47 TP_fast_assign( 48 __entry->reason = reason; 49 ), 50 51 TP_printk("(%s)", __entry->reason) 52 ); 53 54 /** 55 * ipi_entry - called immediately before the IPI handler 56 * 57 * @reason: string identifying the IPI purpose 58 * 59 * It is necessary for @reason to be a static string declared with 60 * __tracepoint_string, ideally the same as used with trace_ipi_raise 61 * for that IPI. 62 */ 63 DEFINE_EVENT(ipi_handler, ipi_entry, 64 65 TP_PROTO(const char *reason), 66 67 TP_ARGS(reason) 68 ); 69 70 /** 71 * ipi_exit - called immediately after the IPI handler returns 72 * 73 * @reason: string identifying the IPI purpose 74 * 75 * It is necessary for @reason to be a static string declared with 76 * __tracepoint_string, ideally the same as used with trace_ipi_raise for 77 * that IPI. 78 */ 79 DEFINE_EVENT(ipi_handler, ipi_exit, 80 81 TP_PROTO(const char *reason), 82 83 TP_ARGS(reason) 84 ); 85 86 #endif /* _TRACE_IPI_H */ 87 88 /* This part must be outside protection */ 89 #include <trace/define_trace.h> 90