aboutsummaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorBjoern Brandenburg <bbb@mpi-sws.org>2015-08-09 07:18:45 -0400
committerBjoern Brandenburg <bbb@mpi-sws.org>2015-08-09 06:21:16 -0400
commit246fc4491c943b4f2723bf711eadd48c8e4f4045 (patch)
treebff66ced774394516bb9d91d6b495049bbc96de3 /kernel
parentb4a055a180134a149ec846087ee0153d46652339 (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.c5
-rw-r--r--kernel/softirq.c3
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