[CFT] Paravirtualized KVM clock

Bryan Venteicher bryanv at daemoninthecloset.org
Thu Jan 22 01:06:47 UTC 2015


On Wed, Jan 21, 2015 at 3:15 PM, Peter Jeremy <peter at rulingia.com> wrote:

> On 2015-Jan-04 11:56:14 -0600, Bryan Venteicher <
> bryanv at daemoninthecloset.org> wrote:
> >For the last few weeks, I've been working on adding support for KVM clock
> >in the projects/paravirt branch. Currently, a KVM VM guest will end up
> >selecting either the HPET or ACPI as the timecounter source.
> Unfortunately,
> >this is very costly since every timecounter fetch causes a VM exit. KVM
> >clock allows the guest to use the TSC instead; it is very similar to the
> >existing Xen timer.
>
> A somewhat late response but have you looked at
>
> https://github.com/blitz/freebsd/commit/cdc5f872b3e48cc0dda031fc7d6bdedc65c3148f
> I've been running this[*] on a Google Compute Engine instance for about 6
> months without problems.
>
>
A goal of my work was to put a bit of infrastructure in place so FreeBSD
can support pvops across a variety of hypervisors. KVMCLOCK happens to be
about the easiest to implement, and has a decent performance win for many
situations.

I think that commit is broken on SMP guests: CPU_FOREACH() does not switch
the current CPU, so it just keeps writing to the MSR on the BSP.

[*] I had to patch out the test for KVM_FEATURE_CLOCKSOURCE_STABLE_BIT but
>     I think that's a GCE issue.
>
> --
> Peter Jeremy
>


More information about the freebsd-arch mailing list