2 #define TRACE_SYSTEM arm-ipi
4 #if !defined(_TRACE_ARM_IPI_H) || defined(TRACE_HEADER_MULTI_READ)
5 #define _TRACE_ARM_IPI_H
7 #include <linux/tracepoint.h>
9 #define show_arm_ipi_name(val) \
10 __print_symbolic(val, \
11 { 0, "IPI_WAKEUP" }, \
13 { 2, "IPI_RESCHEDULE" }, \
14 { 3, "IPI_CALL_FUNC" }, \
15 { 4, "IPI_CALL_FUNC_SINGLE" }, \
16 { 5, "IPI_CPU_STOP" }, \
17 { 6, "IPI_COMPLETION" }, \
18 { 7, "IPI_CPU_BACKTRACE" })
20 DECLARE_EVENT_CLASS(arm_ipi,
22 TP_PROTO(unsigned int ipi_nr),
27 __field( unsigned int, ipi )
31 __entry->ipi = ipi_nr;
34 TP_printk("ipi=%u [action=%s]", __entry->ipi,
35 show_arm_ipi_name(__entry->ipi))
39 * arm_ipi_entry - called in the arm-generic ipi handler immediately before
40 * entering ipi-type handler
43 * When used in combination with the arm_ipi_exit tracepoint
44 * we can determine the ipi handler runtine.
46 DEFINE_EVENT(arm_ipi, arm_ipi_entry,
48 TP_PROTO(unsigned int ipi_nr),
54 * arm_ipi_exit - called in the arm-generic ipi handler immediately
55 * after the ipi-type handler returns
58 * When used in combination with the arm_ipi_entry tracepoint
59 * we can determine the ipi handler runtine.
61 DEFINE_EVENT(arm_ipi, arm_ipi_exit,
63 TP_PROTO(unsigned int ipi_nr),
69 * arm_ipi_send - called as the ipi target mask is built, immediately
70 * before the register is written
72 * @dest: cpu to send to
74 * When used in combination with the arm_ipi_entry tracepoint
75 * we can determine the ipi raise to run latency.
77 TRACE_EVENT(arm_ipi_send,
79 TP_PROTO(unsigned int ipi_nr, int dest),
81 TP_ARGS(ipi_nr, dest),
84 __field( unsigned int, ipi )
89 __entry->ipi = ipi_nr;
93 TP_printk("dest=%d ipi=%u [action=%s]", __entry->dest,
94 __entry->ipi, show_arm_ipi_name(__entry->ipi))
97 #endif /* _TRACE_ARM_IPI_H */
99 /* This part must be outside protection */
100 #include <trace/define_trace.h>