2 #define TRACE_SYSTEM ipi
4 #if !defined(_TRACE_IPI_H) || defined(TRACE_HEADER_MULTI_READ)
7 #include <linux/tracepoint.h>
10 * ipi_raise - called when a smp cross call is made
12 * @mask: mask of recipient CPUs for the IPI
13 * @reason: string identifying the IPI purpose
15 * It is necessary for @reason to be a static string declared with
16 * __tracepoint_string.
18 TRACE_EVENT(ipi_raise
,
20 TP_PROTO(const struct cpumask
*mask
, const char *reason
),
22 TP_ARGS(mask
, reason
),
25 __bitmask(target_cpus
, nr_cpumask_bits
)
26 __field(const char *, reason
)
30 __assign_bitmask(target_cpus
, cpumask_bits(mask
), nr_cpumask_bits
);
31 __entry
->reason
= reason
;
34 TP_printk("target_mask=%s (%s)", __get_bitmask(target_cpus
), __entry
->reason
)
37 DECLARE_EVENT_CLASS(ipi_handler
,
39 TP_PROTO(const char *reason
),
44 __field(const char *, reason
)
48 __entry
->reason
= reason
;
51 TP_printk("(%s)", __entry
->reason
)
55 * ipi_entry - called immediately before the IPI handler
57 * @reason: string identifying the IPI purpose
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
63 DEFINE_EVENT(ipi_handler
, ipi_entry
,
65 TP_PROTO(const char *reason
),
71 * ipi_exit - called immediately after the IPI handler returns
73 * @reason: string identifying the IPI purpose
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
79 DEFINE_EVENT(ipi_handler
, ipi_exit
,
81 TP_PROTO(const char *reason
),
86 #endif /* _TRACE_IPI_H */
88 /* This part must be outside protection */
89 #include <trace/define_trace.h>