This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
Home Products Support Community News


Re: [Xen-devel] [PATCH 0 of 5] PV on HVM Xen

To: Jeremy Fitzhardinge <jeremy@xxxxxxxx>
Subject: Re: [Xen-devel] [PATCH 0 of 5] PV on HVM Xen
From: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
Date: Tue, 16 Mar 2010 18:37:51 +0000
Cc: Sheng Yang <sheng@xxxxxxxxxxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>, Stefano Stabellini <Stefano.Stabellini@xxxxxxxxxxxxx>
Delivery-date: Tue, 16 Mar 2010 11:34:12 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <4B9FCD46.5090705@xxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <alpine.DEB.2.00.1003101457100.28412@kaball-desktop> <alpine.DEB.2.00.1003121024590.27222@kaball-desktop> <alpine.DEB.2.00.1003121432460.27222@kaball-desktop> <201003151205.29964.sheng@xxxxxxxxxxxxxxx> <alpine.DEB.2.00.1003151128010.28944@kaball-desktop> <4B9EBE03.4080105@xxxxxxxx> <alpine.DEB.2.00.1003161100540.23661@kaball-desktop> <4B9FBE94.4020303@xxxxxxxx> <alpine.DEB.2.00.1003161728550.23661@kaball-desktop> <4B9FC2B5.20103@xxxxxxxx> <alpine.DEB.2.00.1003161747090.23661@kaball-desktop> <4B9FCD46.5090705@xxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Alpine 2.00 (DEB 1167 2008-08-23)
On Tue, 16 Mar 2010, Jeremy Fitzhardinge wrote:
> On 03/16/2010 11:06 AM, Stefano Stabellini wrote:
> > the following is the interesting bit of the pvclock interface:
> >
> > static __always_inline
> > u64 pvclock_get_nsec_offset(const struct pvclock_vcpu_time_info *src)
> > {
> >     u64 delta = __native_read_tsc() - src->tsc_timestamp;
> >     return scale_delta(delta, src->tsc_to_system_mul, src->tsc_shift);
> > }
> >
> >
> > xen refreshes the values in pvclock_vcpu_time_info every EPOCH (1s),
> > therefore if the value returned by pvclock_get_nsec_offset is greater
> > than EPOCH than the patch is not present in xen.
> >
> > This is a simple way of detecting if the offset is taken into account or
> > not and it works because the offset is the value returned by rdtsc in
> > the host when the VM was created and we can be sure it corresponds to
> > more than 1 sec.
> >    
> That seems pretty fragile.  I don't think EPOCH is part of the ABI, and 
> I don't think we should be relying on it.

EPOCH is certainly not part of the ABI :)
That said the difference between a correct delta and a wrong delta is so
big that we cannot really be mistaken.

In any case I wouldn't mind a feature flag just to stay on the safe
side, so I'll leave this decision to you and Keir (that this week is on

Xen-devel mailing list