aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorBjoern Brandenburg <bbb@mpi-sws.org>2012-09-04 06:45:54 -0400
committerBjoern Brandenburg <bbb@mpi-sws.org>2012-10-18 16:14:05 -0400
commita13904d4b6d04278deb6841020dd7dee9867745e (patch)
tree89cd8206405935c8a6b600a8da3ac042a116a45c /arch
parent1ae3a8f858a6eb6a75a78fb8f35c98fa870dfb87 (diff)
Trace IPI-related IRQs with ft_irq_fired()
IPIs have some special cases where irq_enter() is not called. This caused ft_irq_fired() to "miss" some rescheduling-related interrupts, which in turn may cause outliers. This patch makes sure ft_irq_fired() is called on scheduling-related IPIs.
Diffstat (limited to 'arch')
-rw-r--r--arch/x86/kernel/smp.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/x86/kernel/smp.c b/arch/x86/kernel/smp.c
index ed4c4f54e2ae..f5e294040b1c 100644
--- a/arch/x86/kernel/smp.c
+++ b/arch/x86/kernel/smp.c
@@ -251,8 +251,10 @@ extern void hrtimer_pull(void);
251void smp_pull_timers_interrupt(struct pt_regs *regs) 251void smp_pull_timers_interrupt(struct pt_regs *regs)
252{ 252{
253 ack_APIC_irq(); 253 ack_APIC_irq();
254 irq_enter();
254 TRACE("pull timer interrupt\n"); 255 TRACE("pull timer interrupt\n");
255 hrtimer_pull(); 256 hrtimer_pull();
257 irq_exit();
256} 258}
257 259
258struct smp_ops smp_ops = { 260struct smp_ops smp_ops = {