On 08/09/2012 10:02 PM, Marcelo Tosatti wrote:
On Thu, Aug 09, 2012 at 05:20:11PM +0300, Avi Kivity wrote:
On 08/09/2012 05:18 PM, Gerd Hoffmann wrote:
Hi,
So what do you suggest? The options I see are:
(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.
All sorts of timeouts, from a few miliseconds to seconds.
The problematic ones are the longer timeouts, which wait for I/O stuff like disk reads complete. The stuff with smaller timeouts (like waiting for AHCI link become ready) tend to finish instantly in kvm.
That's not guaranteed. The AHCI adapter might be real hardware. Or the emulation may change.
What's wrong with having a full kvmclock implementation? Instead of issuing rdtsc call a function pointer.
Its not necessary (someone is going to maintain the kvmclock frequency retrieve, which patch is already here, versus maintainance of full kvmclock).
The frequency is meaninless.
Frequency scaling (or the software equivalent: TSC trapping) are required for other reasons anyway.
One thing we can do is enable TSC trapping, then disable it if the guest activates kvmclock. That gives us accurate time either way.