Re: [PATCH] kvm: kvmclock: let KVM_GET_CLOCK return whether the master clock is in use

From: Paolo Bonzini
Date: Wed Nov 09 2016 - 17:04:00 EST




----- Original Message -----
> From: "Marcelo Tosatti" <mtosatti@xxxxxxxxxx>
> To: "Paolo Bonzini" <pbonzini@xxxxxxxxxx>
> Cc: linux-kernel@xxxxxxxxxxxxxxx, kvm@xxxxxxxxxxxxxxx, "Radim KrÄmÃÅ" <rkrcmar@xxxxxxxxxx>
> Sent: Wednesday, November 9, 2016 9:17:19 PM
> Subject: Re: [PATCH] kvm: kvmclock: let KVM_GET_CLOCK return whether the master clock is in use
>
> On Wed, Nov 09, 2016 at 06:12:50PM -0200, Marcelo Tosatti wrote:
> > On Wed, Nov 09, 2016 at 05:48:15PM +0100, Paolo Bonzini wrote:
> > > Userspace can read the exact value of kvmclock by reading the TSC
> > > and fetching the timekeeping parameters out of guest memory. This
> > > however is brittle and not necessary anymore with KVM 4.11.
> >
> > Hi Paolo,
> >
> > Can you point to commit or explanation why that is not the case anymore?
> > Thanks
>
> I don't see how thats possible given the:
>
> * TSC
> * TSC (timer interrupt + TSC deltas) (AKA host TSC clocksource and
> * CLOCK_MONOTONIC).
>
> Clocks currently drift from each other (therefore are not monotonic).

__get_kernel_ns now computes the guest's kvmclock directly when using the
master clock. Instead of peeking at guest memory, it does it from the
hypervisor's copy of the parameters.

Paolo