1 #ifdef CONFIG_PREEMPTIRQ_EVENTS
4 #define TRACE_SYSTEM preemptirq
6 #if !defined(LTTNG_TRACE_PREEMPTIRQ_H) || defined(TRACE_HEADER_MULTI_READ)
7 #define LTTNG_TRACE_PREEMPTIRQ_H
9 #include <linux/ktime.h>
10 #include <linux/string.h>
11 #include <asm/sections.h>
12 #include <probes/lttng-tracepoint-event.h>
15 LTTNG_TRACEPOINT_EVENT_CLASS(preemptirq_template
,
17 TP_PROTO(unsigned long ip
, unsigned long parent_ip
),
19 TP_ARGS(ip
, parent_ip
),
22 ctf_integer_hex(unsigned long, caller
, ip
)
23 ctf_integer_hex(unsigned long, parent
, parent_ip
)
27 #ifndef CONFIG_PROVE_LOCKING
28 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(preemptirq_template
, irq_disable
,
30 preemptirq_irq_disable
,
32 TP_PROTO(unsigned long ip
, unsigned long parent_ip
),
34 TP_ARGS(ip
, parent_ip
)
37 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(preemptirq_template
, irq_enable
,
39 preemptirq_irq_enable
,
41 TP_PROTO(unsigned long ip
, unsigned long parent_ip
),
43 TP_ARGS(ip
, parent_ip
)
45 #endif /* !CONFIG_PROVE_LOCKING */
47 #ifdef CONFIG_DEBUG_PREEMPT
48 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(preemptirq_template
, preempt_disable
,
50 preemptirq_preempt_disable
,
52 TP_PROTO(unsigned long ip
, unsigned long parent_ip
),
54 TP_ARGS(ip
, parent_ip
)
57 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(preemptirq_template
, preempt_enable
,
59 preemptirq_preempt_enable
,
61 TP_PROTO(unsigned long ip
, unsigned long parent_ip
),
63 TP_ARGS(ip
, parent_ip
)
65 #endif /* CONFIG_DEBUG_PREEMPT */
67 #endif /* LTTNG_TRACE_PREEMPTIRQ_H */
69 /* This part must be outside protection */
70 #include <probes/define_trace.h>
72 #endif /* CONFIG_PREEMPTIRQ_EVENTS */