diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/linux/hardirq.h | 3 | ||||
| -rw-r--r-- | include/litmus/trace_irq.h | 14 |
2 files changed, 17 insertions, 0 deletions
diff --git a/include/linux/hardirq.h b/include/linux/hardirq.h index f4af03404b97..b01723cf13cf 100644 --- a/include/linux/hardirq.h +++ b/include/linux/hardirq.h | |||
| @@ -7,6 +7,7 @@ | |||
| 7 | #include <linux/vtime.h> | 7 | #include <linux/vtime.h> |
| 8 | #include <asm/hardirq.h> | 8 | #include <asm/hardirq.h> |
| 9 | 9 | ||
| 10 | #include <litmus/trace_irq.h> | ||
| 10 | 11 | ||
| 11 | extern void synchronize_irq(unsigned int irq); | 12 | extern void synchronize_irq(unsigned int irq); |
| 12 | extern bool synchronize_hardirq(unsigned int irq); | 13 | extern bool synchronize_hardirq(unsigned int irq); |
| @@ -37,6 +38,7 @@ extern void rcu_nmi_exit(void); | |||
| 37 | account_irq_enter_time(current); \ | 38 | account_irq_enter_time(current); \ |
| 38 | preempt_count_add(HARDIRQ_OFFSET); \ | 39 | preempt_count_add(HARDIRQ_OFFSET); \ |
| 39 | trace_hardirq_enter(); \ | 40 | trace_hardirq_enter(); \ |
| 41 | ft_irq_fired(); \ | ||
| 40 | } while (0) | 42 | } while (0) |
| 41 | 43 | ||
| 42 | /* | 44 | /* |
| @@ -67,6 +69,7 @@ extern void irq_exit(void); | |||
| 67 | preempt_count_add(NMI_OFFSET + HARDIRQ_OFFSET); \ | 69 | preempt_count_add(NMI_OFFSET + HARDIRQ_OFFSET); \ |
| 68 | rcu_nmi_enter(); \ | 70 | rcu_nmi_enter(); \ |
| 69 | trace_hardirq_enter(); \ | 71 | trace_hardirq_enter(); \ |
| 72 | ft_irq_fired(); \ | ||
| 70 | } while (0) | 73 | } while (0) |
| 71 | 74 | ||
| 72 | #define nmi_exit() \ | 75 | #define nmi_exit() \ |
diff --git a/include/litmus/trace_irq.h b/include/litmus/trace_irq.h new file mode 100644 index 000000000000..0d0c042ba9c3 --- /dev/null +++ b/include/litmus/trace_irq.h | |||
| @@ -0,0 +1,14 @@ | |||
| 1 | #ifndef _LITMUS_TRACE_IRQ_H_ | ||
| 2 | #define _LITMUS_TRACE_IRQ_H_ | ||
| 3 | |||
| 4 | #ifdef CONFIG_SCHED_OVERHEAD_TRACE | ||
| 5 | |||
| 6 | void ft_irq_fired(void); | ||
| 7 | |||
| 8 | #else | ||
| 9 | |||
| 10 | #define ft_irq_fired() /* nothing to do */ | ||
| 11 | |||
| 12 | #endif | ||
| 13 | |||
| 14 | #endif | ||
