This appears to be due to local_irq_count(cpu) always being 2 when update_process_times() is called. Looks like we call irq_enter() twice, once in do_irq() and again in smp_do_timer(). Maybe we can just remove the irq_enter/exit calls from smp_do_timer()? Richard