From: Dan H. <dh...@vm...> - 2007-10-29 23:22:24
|
On 10/29/2007 04:02 PM, Ingo Molnar wrote: > * Zachary Amsden <za...@vm...> wrote: > >> On Mon, 2007-10-29 at 23:48 +0100, Ingo Molnar wrote: >>> * Zachary Amsden <za...@vm...> 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. |