2 #define TRACE_SYSTEM irq
4 #if !defined(LTTNG_TRACE_IRQ_H) || defined(TRACE_HEADER_MULTI_READ)
5 #define LTTNG_TRACE_IRQ_H
7 #include <probes/lttng-tracepoint-event.h>
9 #ifndef _TRACE_IRQ_DEF_
10 #define _TRACE_IRQ_DEF_
13 struct softirq_action
;
15 #endif /* _TRACE_IRQ_DEF_ */
18 * irq_handler_entry - called immediately before the irq action handler
20 * @action: pointer to struct irqaction
22 * The struct irqaction pointed to by @action contains various
23 * information about the handler, including the device name,
24 * @action->name, and the device id, @action->dev_id. When used in
25 * conjunction with the irq_handler_exit tracepoint, we can figure
26 * out irq handler latencies.
28 LTTNG_TRACEPOINT_EVENT(irq_handler_entry
,
30 TP_PROTO(int irq
, struct irqaction
*action
),
35 ctf_integer(int, irq
, irq
)
36 ctf_string(name
, action
->name
)
41 * irq_handler_exit - called immediately after the irq action handler returns
43 * @action: pointer to struct irqaction
46 * If the @ret value is set to IRQ_HANDLED, then we know that the corresponding
47 * @action->handler scuccessully handled this irq. Otherwise, the irq might be
48 * a shared irq line, or the irq was not handled successfully. Can be used in
49 * conjunction with the irq_handler_entry to understand irq handler latencies.
51 LTTNG_TRACEPOINT_EVENT(irq_handler_exit
,
53 TP_PROTO(int irq
, struct irqaction
*action
, int ret
),
55 TP_ARGS(irq
, action
, ret
),
58 ctf_integer(int, irq
, irq
)
59 ctf_integer(int, ret
, ret
)
63 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37))
64 LTTNG_TRACEPOINT_EVENT_CLASS(irq_softirq
,
66 TP_PROTO(unsigned int vec_nr
),
71 ctf_integer(unsigned int, vec
, vec_nr
)
76 * softirq_entry - called immediately before the softirq handler
77 * @vec_nr: softirq vector number
79 * When used in combination with the softirq_exit tracepoint
80 * we can determine the softirq handler runtine.
82 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(irq_softirq
, softirq_entry
,
86 TP_PROTO(unsigned int vec_nr
),
92 * softirq_exit - called immediately after the softirq handler returns
93 * @vec_nr: softirq vector number
95 * When used in combination with the softirq_entry tracepoint
96 * we can determine the softirq handler runtine.
98 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(irq_softirq
, softirq_exit
,
102 TP_PROTO(unsigned int vec_nr
),
108 * softirq_raise - called immediately when a softirq is raised
109 * @vec_nr: softirq vector number
111 * When used in combination with the softirq_entry tracepoint
112 * we can determine the softirq raise to run latency.
114 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(irq_softirq
, softirq_raise
,
118 TP_PROTO(unsigned int vec_nr
),
122 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) */
123 LTTNG_TRACEPOINT_EVENT_CLASS(irq_softirq
,
125 TP_PROTO(struct softirq_action
*h
, struct softirq_action
*vec
),
130 ctf_integer(unsigned int, vec
, (int)(h
- vec
))
135 * softirq_entry - called immediately before the softirq handler
136 * @h: pointer to struct softirq_action
137 * @vec: pointer to first struct softirq_action in softirq_vec array
139 * When used in combination with the softirq_exit tracepoint
140 * we can determine the softirq handler runtine.
142 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(irq_softirq
, softirq_entry
,
146 TP_PROTO(struct softirq_action
*h
, struct softirq_action
*vec
),
152 * softirq_exit - called immediately after the softirq handler returns
153 * @h: pointer to struct softirq_action
154 * @vec: pointer to first struct softirq_action in softirq_vec array
156 * When used in combination with the softirq_entry tracepoint
157 * we can determine the softirq handler runtine.
159 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(irq_softirq
, softirq_exit
,
163 TP_PROTO(struct softirq_action
*h
, struct softirq_action
*vec
),
169 * softirq_raise - called immediately when a softirq is raised
170 * @h: pointer to struct softirq_action
171 * @vec: pointer to first struct softirq_action in softirq_vec array
173 * When used in combination with the softirq_entry tracepoint
174 * we can determine the softirq raise to run latency.
176 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(irq_softirq
, softirq_raise
,
180 TP_PROTO(struct softirq_action
*h
, struct softirq_action
*vec
),
184 #endif /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) */
186 #endif /* LTTNG_TRACE_IRQ_H */
188 /* This part must be outside protection */
189 #include <probes/define_trace.h>
This page took 0.032372 seconds and 4 git commands to generate.