alpha: Shift perf event pending work earlier in timer interrupt
Pending work from the performance event subsystem is executed in the timer interrupt. This patch shifts the call to perf_event_do_pending() before the call to update_process_times() as the latter may call back into the perf event subsystem and it is prudent to have the pending work executed first. Signed-off-by: Michael Cree <mcree@orcon.net.nz> Signed-off-by: Matt Turner <mattst88@gmail.com>
This commit is contained in:
parent
531f0474bf
commit
bdc8b8914b
|
@ -191,16 +191,16 @@ irqreturn_t timer_interrupt(int irq, void *dev)
|
||||||
|
|
||||||
write_sequnlock(&xtime_lock);
|
write_sequnlock(&xtime_lock);
|
||||||
|
|
||||||
#ifndef CONFIG_SMP
|
|
||||||
while (nticks--)
|
|
||||||
update_process_times(user_mode(get_irq_regs()));
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (test_perf_event_pending()) {
|
if (test_perf_event_pending()) {
|
||||||
clear_perf_event_pending();
|
clear_perf_event_pending();
|
||||||
perf_event_do_pending();
|
perf_event_do_pending();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef CONFIG_SMP
|
||||||
|
while (nticks--)
|
||||||
|
update_process_times(user_mode(get_irq_regs()));
|
||||||
|
#endif
|
||||||
|
|
||||||
return IRQ_HANDLED;
|
return IRQ_HANDLED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue