Re: [PATCH] raise tsc clocksource rating

Dan Hecht
2007-10-29T23:22:40Z

On 10/29/2007 04:02 PM, Ingo Molnar wrote:
> * Zachary Amsden <zach@vmware.com> wrote:
>
>> On Mon, 2007-10-29 at 23:48 +0100, Ingo Molnar wrote:
>>> * Zachary Amsden <zach@vmware.com> wrote:
>>> if it's inaccurate why are you exposing it to the guest then? Native
>>> only uses the TSC if it's safe and accurate to do so.
>> Not every guest support paravirt, but for correctness, all guests
>> require TSC, which must be exposed all the way up to userspace, no
>> matter what the efficiency or accuracy may be.
>
> but if there's a perfect TSC available (there is such hardware) then the
> TSC _is_ the best clocksource. Paravirt now turns it off unconditionally
> in essence.
>

Not really. In the case hardware TSC is perfect, the paravirt time
counter can be implemented directly in terms of hardware TSC; there is
no loss in optimization. This is done transparently. And virtual TSC
can be implemented this way too.

The real improvement that a paravirt clocksource offers over the TSC
clocksource is that the guest does not need to measure the TSC frequency
itself against some other constant frequency source (which is
problematic on a virtual machine). Instead, the paravirt clocksource
queries the hypervisor for the frequency of the counter. As you know,
with clocksource style kernels, it's important to get this frequency
correct, or else the guest will have long-term time drift.