94376f628979fbe967c1d205798f7191a7312275
1 // SPDX-FileCopyrightText: 2011 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
3 // SPDX-License-Identifier: GPL-2.0-only
6 #define TRACE_SYSTEM irq
8 #if !defined(LTTNG_TRACE_IRQ_H) || defined(TRACE_HEADER_MULTI_READ)
9 #define LTTNG_TRACE_IRQ_H
11 #include <lttng/tracepoint-event.h>
13 #ifndef _TRACE_IRQ_DEF_
14 #define _TRACE_IRQ_DEF_
17 struct softirq_action
;
19 #endif /* _TRACE_IRQ_DEF_ */
22 * irq_handler_entry - called immediately before the irq action handler
24 * @action: pointer to struct irqaction
26 * The struct irqaction pointed to by @action contains various
27 * information about the handler, including the device name,
28 * @action->name, and the device id, @action->dev_id. When used in
29 * conjunction with the irq_handler_exit tracepoint, we can figure
30 * out irq handler latencies.
32 LTTNG_TRACEPOINT_EVENT(irq_handler_entry
,
34 TP_PROTO(int irq
, struct irqaction
*action
),
39 ctf_integer(int, irq
, irq
)
40 ctf_string(name
, action
->name
)
45 * irq_handler_exit - called immediately after the irq action handler returns
47 * @action: pointer to struct irqaction
50 * If the @ret value is set to IRQ_HANDLED, then we know that the corresponding
51 * @action->handler scuccessully handled this irq. Otherwise, the irq might be
52 * a shared irq line, or the irq was not handled successfully. Can be used in
53 * conjunction with the irq_handler_entry to understand irq handler latencies.
55 LTTNG_TRACEPOINT_EVENT(irq_handler_exit
,
57 TP_PROTO(int irq
, struct irqaction
*action
, int ret
),
59 TP_ARGS(irq
, action
, ret
),
62 ctf_integer(int, irq
, irq
)
63 ctf_integer(int, ret
, ret
)
67 LTTNG_TRACEPOINT_EVENT_CLASS(irq_softirq
,
69 TP_PROTO(unsigned int vec_nr
),
74 ctf_integer(unsigned int, vec
, vec_nr
)
79 * softirq_entry - called immediately before the softirq handler
80 * @vec_nr: softirq vector number
82 * When used in combination with the softirq_exit tracepoint
83 * we can determine the softirq handler runtine.
85 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(irq_softirq
, softirq_entry
,
89 TP_PROTO(unsigned int vec_nr
),
95 * softirq_exit - called immediately after the softirq handler returns
96 * @vec_nr: softirq vector number
98 * When used in combination with the softirq_entry tracepoint
99 * we can determine the softirq handler runtine.
101 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(irq_softirq
, softirq_exit
,
105 TP_PROTO(unsigned int vec_nr
),
111 * softirq_raise - called immediately when a softirq is raised
112 * @vec_nr: softirq vector number
114 * When used in combination with the softirq_entry tracepoint
115 * we can determine the softirq raise to run latency.
117 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(irq_softirq
, softirq_raise
,
121 TP_PROTO(unsigned int vec_nr
),
126 #endif /* LTTNG_TRACE_IRQ_H */
128 /* This part must be outside protection */
129 #include <lttng/define_trace.h>
This page took 0.033374 seconds and 5 git commands to generate.