[SeaBIOS] [PATCH] tsc: use kvmclock for calibration

Avi Kivity avi at redhat.com
Sun Aug 12 12:56:51 CEST 2012


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.


-- 
error compiling committee.c: too many arguments to function



More information about the SeaBIOS mailing list