1 /* SPDX-License-Identifier: GPL-2.0 */
3 #define TRACE_SYSTEM irq
5 #if !defined(LTTNG_TRACE_IRQ_H) || defined(TRACE_HEADER_MULTI_READ)
6 #define LTTNG_TRACE_IRQ_H
8 #include <probes/lttng-tracepoint-event.h>
10 #ifndef _TRACE_IRQ_DEF_
11 #define _TRACE_IRQ_DEF_
14 struct softirq_action
;
16 #endif /* _TRACE_IRQ_DEF_ */
19 * irq_handler_entry - called immediately before the irq action handler
21 * @action: pointer to struct irqaction
23 * The struct irqaction pointed to by @action contains various
24 * information about the handler, including the device name,
25 * @action->name, and the device id, @action->dev_id. When used in
26 * conjunction with the irq_handler_exit tracepoint, we can figure
27 * out irq handler latencies.
29 LTTNG_TRACEPOINT_EVENT(irq_handler_entry
,
31 TP_PROTO(int irq
, struct irqaction
*action
),
36 ctf_integer(int, irq
, irq
)
37 ctf_string(name
, action
->name
)
42 * irq_handler_exit - called immediately after the irq action handler returns
44 * @action: pointer to struct irqaction
47 * If the @ret value is set to IRQ_HANDLED, then we know that the corresponding
48 * @action->handler scuccessully handled this irq. Otherwise, the irq might be
49 * a shared irq line, or the irq was not handled successfully. Can be used in
50 * conjunction with the irq_handler_entry to understand irq handler latencies.
52 LTTNG_TRACEPOINT_EVENT(irq_handler_exit
,
54 TP_PROTO(int irq
, struct irqaction
*action
, int ret
),
56 TP_ARGS(irq
, action
, ret
),
59 ctf_integer(int, irq
, irq
)
60 ctf_integer(int, ret
, ret
)
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
),
123 #endif /* LTTNG_TRACE_IRQ_H */
125 /* This part must be outside protection */
126 #include <probes/define_trace.h>
This page took 0.031044 seconds and 4 git commands to generate.