diff options
Diffstat (limited to 'include/trace')
-rw-r--r-- | include/trace/events/irq.h | 57 |
1 files changed, 48 insertions, 9 deletions
diff --git a/include/trace/events/irq.h b/include/trace/events/irq.h index 75e3468e4493..768686467518 100644 --- a/include/trace/events/irq.h +++ b/include/trace/events/irq.h | |||
@@ -10,11 +10,24 @@ | |||
10 | /* | 10 | /* |
11 | * Tracepoint for entry of interrupt handler: | 11 | * Tracepoint for entry of interrupt handler: |
12 | */ | 12 | */ |
13 | TRACE_FORMAT(irq_handler_entry, | 13 | TRACE_EVENT(irq_handler_entry, |
14 | |||
14 | TP_PROTO(int irq, struct irqaction *action), | 15 | TP_PROTO(int irq, struct irqaction *action), |
16 | |||
15 | TP_ARGS(irq, action), | 17 | TP_ARGS(irq, action), |
16 | TP_FMT("irq=%d handler=%s", irq, action->name) | 18 | |
17 | ); | 19 | TP_STRUCT__entry( |
20 | __field( int, irq ) | ||
21 | __string( name, action->name ) | ||
22 | ), | ||
23 | |||
24 | TP_fast_assign( | ||
25 | __entry->irq = irq; | ||
26 | __assign_str(name, action->name); | ||
27 | ), | ||
28 | |||
29 | TP_printk("irq=%d handler=%s", __entry->irq, __get_str(name)) | ||
30 | ); | ||
18 | 31 | ||
19 | /* | 32 | /* |
20 | * Tracepoint for return of an interrupt handler: | 33 | * Tracepoint for return of an interrupt handler: |
@@ -39,17 +52,43 @@ TRACE_EVENT(irq_handler_exit, | |||
39 | __entry->irq, __entry->ret ? "handled" : "unhandled") | 52 | __entry->irq, __entry->ret ? "handled" : "unhandled") |
40 | ); | 53 | ); |
41 | 54 | ||
42 | TRACE_FORMAT(softirq_entry, | 55 | TRACE_EVENT(softirq_entry, |
56 | |||
43 | TP_PROTO(struct softirq_action *h, struct softirq_action *vec), | 57 | TP_PROTO(struct softirq_action *h, struct softirq_action *vec), |
58 | |||
44 | TP_ARGS(h, vec), | 59 | TP_ARGS(h, vec), |
45 | TP_FMT("softirq=%d action=%s", (int)(h - vec), softirq_to_name[h-vec]) | ||
46 | ); | ||
47 | 60 | ||
48 | TRACE_FORMAT(softirq_exit, | 61 | TP_STRUCT__entry( |
62 | __field( int, vec ) | ||
63 | __string( name, softirq_to_name[h-vec] ) | ||
64 | ), | ||
65 | |||
66 | TP_fast_assign( | ||
67 | __entry->vec = (int)(h - vec); | ||
68 | __assign_str(name, softirq_to_name[h-vec]); | ||
69 | ), | ||
70 | |||
71 | TP_printk("softirq=%d action=%s", __entry->vec, __get_str(name)) | ||
72 | ); | ||
73 | |||
74 | TRACE_EVENT(softirq_exit, | ||
75 | |||
49 | TP_PROTO(struct softirq_action *h, struct softirq_action *vec), | 76 | TP_PROTO(struct softirq_action *h, struct softirq_action *vec), |
77 | |||
50 | TP_ARGS(h, vec), | 78 | TP_ARGS(h, vec), |
51 | TP_FMT("softirq=%d action=%s", (int)(h - vec), softirq_to_name[h-vec]) | 79 | |
52 | ); | 80 | TP_STRUCT__entry( |
81 | __field( int, vec ) | ||
82 | __string( name, softirq_to_name[h-vec] ) | ||
83 | ), | ||
84 | |||
85 | TP_fast_assign( | ||
86 | __entry->vec = (int)(h - vec); | ||
87 | __assign_str(name, softirq_to_name[h-vec]); | ||
88 | ), | ||
89 | |||
90 | TP_printk("softirq=%d action=%s", __entry->vec, __get_str(name)) | ||
91 | ); | ||
53 | 92 | ||
54 | #endif /* _TRACE_IRQ_H */ | 93 | #endif /* _TRACE_IRQ_H */ |
55 | 94 | ||