From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751864AbdAMP72 (ORCPT ); Fri, 13 Jan 2017 10:59:28 -0500 Received: from mx1.redhat.com ([209.132.183.28]:50792 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751027AbdAMP70 (ORCPT ); Fri, 13 Jan 2017 10:59:26 -0500 Date: Fri, 13 Jan 2017 13:46:43 -0200 From: Marcelo Tosatti To: Konrad Rzeszutek Wilk Cc: Radim Krcmar , xen-devel@lists.xenproject.org, Joao Martins , kvm@vger.kernel.org, linux-kernel@vger.kernel.org, Paolo Bonzini , Richard Cochran , Miroslav Lichvar Subject: Re: [patch 1/3] KVM: x86: provide realtime host clock via vsyscall notifiers Message-ID: <20170113154640.GC4796@amt.cnet> References: <20170113120131.086634482@redhat.com> <20170113120317.948215303@redhat.com> <20170113151804.GA25835@potion> <20170113154110.GB31175@char.us.oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20170113154110.GB31175@char.us.oracle.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.29]); Fri, 13 Jan 2017 15:50:12 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Jan 13, 2017 at 10:41:10AM -0500, Konrad Rzeszutek Wilk wrote: > On Fri, Jan 13, 2017 at 04:18:04PM +0100, Radim Krcmar wrote: > > 2017-01-13 10:01-0200, Marcelo Tosatti: > > > Expose the realtime host clock and save the TSC value > > > used for the clock calculation. > > > > > > Signed-off-by: Marcelo Tosatti > > > > > > --- > > > arch/x86/kvm/x86.c | 38 ++++++++++++++++++++++++++++++++++++++ > > > 1 file changed, 38 insertions(+) > > > > > > Index: kvm-ptpdriver/arch/x86/kvm/x86.c > > > =================================================================== > > > --- kvm-ptpdriver.orig/arch/x86/kvm/x86.c 2017-01-13 08:59:03.015895353 -0200 > > > +++ kvm-ptpdriver/arch/x86/kvm/x86.c 2017-01-13 09:04:46.581415259 -0200 > > > @@ -1139,6 +1139,8 @@ > > > > > > u64 boot_ns; > > > u64 nsec_base; > > > + u64 wall_time_sec; > > > + u64 wall_time_snsec; > > > > The leading "s" in "snsec" looks like a copy-paste residue. > > > > > }; > > > > > > static struct pvclock_gtod_data pvclock_gtod_data; > > > @@ -1162,6 +1164,9 @@ > > > vdata->boot_ns = boot_ns; > > > vdata->nsec_base = tk->tkr_mono.xtime_nsec; > > > > > > + vdata->wall_time_sec = tk->xtime_sec; > > > + vdata->wall_time_snsec = tk->tkr_mono.xtime_nsec; > > > > Using tk->tkr_mono offsets for real time seems wrong -- what happens if > > the real time is half a second shifted from monotonic time? > > > > If it's ok, then vdata->nsec_base == vdata->wall_time_snsec, so we don't > > need it. > > > > > + > > > write_seqcount_end(&vdata->seq); > > > } > > > #endif > > > @@ -1623,6 +1628,28 @@ > > > return mode; > > > } > > > > > > +static int do_realtime(struct timespec *ts, cycle_t *cycle_now) > > > > This is too similar to do_monotonic_boot(), but I don't see a solution > > that is both nice and efficient. :( > > > > (It usually means macros or copying pvclock_gtod_data.) > > > PV Clock is hypervisor agnostic so both KVM and Xen can use it. Is this clock > interface suppose to follow that? If Xen implements the KVM_HC_CLOCK_OFFSET hypercall, Xen guests can use the kvm ptp driver, yes.