lapic timer: Finish the lapic timer support
authorSepherosa Ziehau <sephe@dragonflybsd.org>
Sat, 2 May 2009 09:41:23 +0000 (17:41 +0800)
committerSepherosa Ziehau <sephe@dragonflybsd.org>
Sat, 2 May 2009 13:53:48 +0000 (21:53 +0800)
commitc5b8324c6c58ebc3b5ff32519f4d7fc199f5399a
treef72803c03083b204f427b9d9530adc23676bd2dc
parent6198c499368711fa914adb5f6bec46d171ad203c
lapic timer: Finish the lapic timer support

- Add lapic_timer_process_oncpu(), which fires per-cpu systimer queue.
- Add lapic_timer_intr_reload(), which restart/start lapic timer.
- Change cputimer_intr_reload to function pointer, so it could be
  overridden when needed.  It is original cputimer_intr_reload function
  on amd64 and vkernel.  On i386, APIC initialization will set it to
  lapic_timer_intr_reload if lapic_timer_enable tunable is set to 1,
  else i8254_intr_reload (origial cputimer_intr_reload) will be used.
- If lapic_timer_enable is 1, then don't try to register "clk" interrupt
  handler at all.

As of this commit, lapic timer support is done.  It is not enabled by
default, set 'hw.lapci_timer_enable' to enable it.
sys/platform/pc32/apic/mpapic.c
sys/platform/pc32/isa/clock.c
sys/platform/pc64/isa/clock.c
sys/platform/vkernel/platform/systimer.c
sys/sys/systimer.h