Timer interrupt cleanups [0/3]
PATCH 1/1 Timer interrupt cleanups [0/3]
Well, I tested these on the NUMA-Q and they seem to work. Basically (as discussed previously) they rename the stuff off the global timer to global_timer_* and the stuff off the local timer to local_timer_*. Then I tried to clean up the cross-calling ifdef madness. There are various corner cases, so it's possible I screwed something up, but I think it's OK.
Original calling graph looked like this, I'll update this for each patch to show what happens. Feel free to flame me, everyone.
--------------------
Assuming we're SMP with a local apic timer all firing away:
timer_interrupt
do_timer_interrupt
{ack the interrupt}
do_timer_interrupt_hook
do_timer
jiffies_64++;
update_times
{update CMOS clock} (In the interrupt still ??!!)apic_timer_interrupt
smp_apic_timer_interrupt
{ack the interrupt}
smp_local_timer_interrupt
x86_do_profile
update_process_times--------------------
On UP with local apic timer:
timer_interrupt
do_timer_interrupt
{ack the interrupt}
do_timer_interrupt_hook
do_timer
jiffies_64++;
update_process_times
update_times
{update CMOS clock} (In the interrupt still ??!!)apic_timer_interrupt
smp_apic_timer_interrupt
{ack the interrupt}
smp_local_timer_interrupt
x86_do_profile--------------------
On a UP 386 with stale crusty breadcrumbs, and no local timer:
timer_interrupt
do_timer_interrupt
{ack the interrupt}
do_timer_interrupt_hook
do_timer
jiffies_64++;
update_process_times
update_times
x86_do_profile()
{update CMOS clock} (In the interrupt still ??!!)--------------------
Quoted 2 lines
Original calling graph looked like this, I'll update this for each patch to show what happens. Feel free to flame me, everyone.
I'll flame myself instead ... these have some global vs arch code hierarchy problems ... ignore them for now. I'll fix them tommorow.
M