aboutsummaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorBjoern Brandenburg <bbb@mpi-sws.org>2013-06-23 08:51:57 -0400
committerBjoern Brandenburg <bbb@mpi-sws.org>2013-08-07 03:46:38 -0400
commit5ef7e2dad47bce26ce3afd0c402f6cc185e75ad6 (patch)
tree0a35e4b6b64321ea6d1a89bce27355b6eb01a67d /kernel
parente089fc170eb4c33c8703bf09cacdff7323cf7575 (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 e8b335016c52..a4c8c093f6bc 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -1408,7 +1408,12 @@ void scheduler_ipi(void)
1408 if (llist_empty(&this_rq()->wake_list) 1408 if (llist_empty(&this_rq()->wake_list)
1409 && !tick_nohz_full_cpu(smp_processor_id()) 1409 && !tick_nohz_full_cpu(smp_processor_id())
1410 && !got_nohz_idle_kick()) 1410 && !got_nohz_idle_kick())
1411 {
1412 /* If we don't call irq_enter(), we need to triggger the IRQ
1413 * tracing manually. */
1414 ft_irq_fired();
1411 return; 1415 return;
1416 }
1412 1417
1413 /* 1418 /*
1414 * Not all reschedule IPI handlers call irq_enter/irq_exit, since 1419 * Not all reschedule IPI handlers call irq_enter/irq_exit, since
diff --git a/kernel/softirq.c b/kernel/softirq.c
index 3d6833f125d3..746010e5f523 100644
--- a/kernel/softirq.c
+++ b/kernel/softirq.c
@@ -226,6 +226,9 @@ asmlinkage void __do_softirq(void)
226 */ 226 */
227 current->flags &= ~PF_MEMALLOC; 227 current->flags &= ~PF_MEMALLOC;
228 228
229 /* Mark Feather-Trace samples as "disturbed". */
230 ft_irq_fired();
231
229 pending = local_softirq_pending(); 232 pending = local_softirq_pending();
230 account_irq_enter_time(current); 233 account_irq_enter_time(current);
231 234