i386: switch to clockintr
In lapic timer mode:
- Rip out lapic_delay(). We can't use the lapic timer to delay(9) when
it's running in one-shot mode.
- Add a randomized statclock(), stathz = hz.
- Add profiling support, profhz = stathz * 10.
- Wire up lapic_intrclock.
In i8254-mode:
- i8254's clockintr() does not have a monopoly on hardclock(9).
- mc146818's rtcintr() does not have a monopoly on statclock().
- In profiling mode, the statclock() will drift very slightly
because (profhz = 1024) does not divide into 1 billion. Need to
consider how best to fix this.
ACPI suspend/resume tested by mlarkin@ via ESXi. Tons of testing by
Scott Bennett on a Pentium 4 machine; APM suspend/resume confirmed to
work there, too.
Link: https://marc.info/?l=openbsd-tech&m=166776370803446&w=2
ok mlarkin@