On Fri, Aug 10, 2012 at 10:10:27AM +0200, Gerd Hoffmann wrote:
Hi,
(1) Use this patch (with alignment issue fixed of course). (2) Do a full kvmclock implementation. Feels a bit like overkill. (3) SeaBIOS can fallback to the PIT for timing on machines which have no TSC. We could do that too in case we detect kvm ...
What sort of timeouts are these? If seconds, maybe the rtc would be best.
I vote for 3 so nobody has to maintain kvmclock code in SeaBIOS and Gerd can fix the in-kernel PIT issues with GRUB (see Michaels message) while testing.
(2) turned out to be not too bad when taking a shortcut: Go through an enable/disable cycle each time we read the clock, then just grab system_time. Not that efficient, but should be ok for seabios. Usually it checks the clock when sitting around idle, waiting for something to happen. And it simplifies the implementation alot as we can just skip all the tsc frequency & delta calculations.
Draft patch attached. Comments?
Given the history of problems with kvmclock, would rather see it not being used for delays, if possible. Your shortcut gets rid of a class of problems, but there might be others (...).
Isnt pmtimer ioport usable? 14MHz.
Error handling in kvmclock_init is awkward.
Thanks