Chris Wright wrote:
* Zachary Amsden ([email protected]) wrote:
+void __init vmi_time_init(void)
+{
+ /* Disable PIT: BIOSes start PIT CH0 with 18.2hz peridic. */
+ outb_p(0x3a, PIT_MODE); /* binary, mode 5, LSB/MSB, ch 0 */
That shouldn't be necessary using clockevents.
Actually, I'm not so sure. If clockevents simply masks the PIT when
disabling it, we still have overhead of keeping the latch in sync, which
requires a timer at the PIT frequency. I can instrument to see how
exactly the PIT gets disabled.
It should switch from pit to vmi-timer, and the switch should do the state
transistions on pit to go to unused mode.
Ok, here's why we need it: the reason is even more basic. PIT
clockevents never get setup; the time_init paravirt-op makes it
conditional whether the PIT or VMI timer get invoked. But our BIOS
still sets it up to run at 18.2 HZ, like any good BIOS would. We need
the disable hack, in fact it is actually a good thing to do for native
hardware. Why leave the PIT enabled with junk programming from the BIOS
once we are in the protected mode kernel? Eventually, on hardware that
doesn't want to use the PIT at all, this might be wanted to conserve
power (casually joking but potentially correct argument).
Zach
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]