diff options
| author | Bjoern Brandenburg <bbb@mpi-sws.org> | 2015-08-09 07:18:45 -0400 |
|---|---|---|
| committer | Bjoern Brandenburg <bbb@mpi-sws.org> | 2015-08-09 06:21:16 -0400 |
| commit | 246fc4491c943b4f2723bf711eadd48c8e4f4045 (patch) | |
| tree | bff66ced774394516bb9d91d6b495049bbc96de3 /kernel | |
| parent | b4a055a180134a149ec846087ee0153d46652339 (diff) | |
Integrate ft_irq_fired() with Linux
This patch hooks up Feather-Trace's ft_irq_fired() handler with
Linux's interrupt handling infrastructure.
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/sched/core.c | 5 | ||||
| -rw-r--r-- | kernel/softirq.c | 3 |
2 files changed, 8 insertions, 0 deletions
diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 123673291ffb..f286554e3395 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c | |||
| @@ -1550,7 +1550,12 @@ void scheduler_ipi(void) | |||
| 1550 | preempt_fold_need_resched(); | 1550 | preempt_fold_need_resched(); |
| 1551 | 1551 | ||
| 1552 | if (llist_empty(&this_rq()->wake_list) && !got_nohz_idle_kick()) | 1552 | if (llist_empty(&this_rq()->wake_list) && !got_nohz_idle_kick()) |
| 1553 | { | ||
| 1554 | /* If we don't call irq_enter(), we need to triggger the IRQ | ||
| 1555 | * tracing manually. */ | ||
| 1556 | ft_irq_fired(); | ||
| 1553 | return; | 1557 | return; |
| 1558 | } | ||
| 1554 | 1559 | ||
| 1555 | /* | 1560 | /* |
| 1556 | * Not all reschedule IPI handlers call irq_enter/irq_exit, since | 1561 | * Not all reschedule IPI handlers call irq_enter/irq_exit, since |
diff --git a/kernel/softirq.c b/kernel/softirq.c index 479e4436f787..99fe8b877e53 100644 --- a/kernel/softirq.c +++ b/kernel/softirq.c | |||
| @@ -244,6 +244,9 @@ asmlinkage __visible void __do_softirq(void) | |||
| 244 | */ | 244 | */ |
| 245 | current->flags &= ~PF_MEMALLOC; | 245 | current->flags &= ~PF_MEMALLOC; |
| 246 | 246 | ||
| 247 | /* Mark Feather-Trace samples as "disturbed". */ | ||
| 248 | ft_irq_fired(); | ||
| 249 | |||
| 247 | pending = local_softirq_pending(); | 250 | pending = local_softirq_pending(); |
| 248 | account_irq_enter_time(current); | 251 | account_irq_enter_time(current); |
| 249 | 252 | ||
