Re: [patch 4/5] PTP: add PTP_SYS_OFFSET emulation via cross timestamps infrastructure

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Jan 23, 2017 at 08:44:53PM +0100, Paolo Bonzini wrote:
> 
> 
> On 23/01/2017 19:44, Richard Cochran wrote:
> >> device clock	   |sample1P,deviceclock|       |sample2P,deviceclock|
> >> -------------------------------------------------------------
> >> realtime clock  |sample1P,realtimeclock|     |sample2P,realtimeclock|
> >
> > Are |sample1P,deviceclock| and |sample1P,realtimeclock| taken at the
> > same instant in time?
> > 
> > If not, then calling that PTP_SYS_OFFSET_PRECISE is misleading.
> 
> Yes, of course.  This was added for the e1000e drivers first, but chrony
> isn't using it yet.  In the case of KVM, the same host TSC value is used
> to produce the host clock and (converted to guest TSC) the guest clock.
> 
> If you just implement getclock64 the PTP_SYS_OFFSET output:
> 
> device clock	|	|sample2|	|sample4|	|sample6| ...
> -------------------------------------------------------------
> realtime clock  |sample1|       |sample3|	|sample5|
> 
> has a very large distance between samples on the same line (about 1 us),
> and I think it is too noisy for userspace to make sense of the output.
> 
> So, on one hand chrony only uses the mean of realtime clock samples, in
> an attempt to produce precise cross timestamps.  On the other hand, even
> though KVM could produce those natively, chrony does not support
> PTP_SYS_OFFSET_PRECISE.
> 
> Marcelo's patch then produces fake realtime clock samples that, however,
> let chrony derive the cross timestamps that KVM produced in the first
> place.  The outcome is really great accuracy compared to previous
> versions of the patch, often just +/- 2 or 3 nanoseconds.
> 
> Paolo

Nope, the clock offset is the value inside square brackets. The +/-
is the error. So the clock offset is actually up to 680ns.

Yes for greater accuracy userspace should implement _PRECISE
support.

I'm resending v5 with native support for ->gettime and 
->getcrosststamps.





[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux