Re: [PATCH 10/11] Support VIRQ_TIMER and pvclock on HVM

From: Stefano Stabellini
Date: Wed May 26 2010 - 09:04:39 EST


On Tue, 25 May 2010, Jeremy Fitzhardinge wrote:
> On 05/24/2010 11:27 AM, Stefano Stabellini wrote:
> > Use the paravirtualized timer (VIRQ_TIMER) as timer and the
> > paravirtualized clock (pvclock) as wallclock on HVM domains too.
> >
>
> That's not quite correct. There's the Xen clockevent driver, the Xen
> clocksource, and a distinct-but-related Xen notion of wallclock time.
> In general, clocksources and wallclock don't have much direct
> relationship to each other.

Let me rephrase it:

use xen_vcpuop_clockevent instead of hpet and APIC timers as main
clockevent device on all vcpus, use the xen wallclock time as wallclock
instead of rtc and use xen_clocksource as clocksource.
The pv clock algorithm needs to work correctly for the xen_clocksource
and xen wallclock to be usable, only modern Xen versions offer a
reliable pv clock in HVM guests (XENFEAT_hvm_safe_pvclock).

>
> > Any interaction with emulated hardware is not very fast, so using the
> > paravirtualized timer instead of the emulated hpet is defenitely a
> >
> "definitely"
>
> > performance improvement.
> >
>
> Are there accuracy/stability/precision improvements too?
>

Using the hpet as clocksource means a VMEXIT every time we read/write to
the hpet mmio addresses, pvclock give us a better rating without
VMEXITs. Same goes for the xen wallclock and xen_vcpuop_clockevent.



--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/