All of lore.kernel.org
 help / color / mirror / Atom feed
From: Richard Cochran <richardcochran@gmail.com>
To: intel-wired-lan@osuosl.org
Subject: [Intel-wired-lan] [PATCH v4 1/4] Produce system time from correlated clocksource
Date: Tue, 20 Oct 2015 16:55:23 +0200	[thread overview]
Message-ID: <20151020145523.GA5207@netboy> (raw)
In-Reply-To: <20151020115113.GA23428@netboy>

On Tue, Oct 20, 2015 at 01:51:13PM +0200, Richard Cochran wrote:
> You can, in fact, achieve "proper" correlation by sampling.  As John
> said, the question is whether the method in the patch set "measurably
> improves the error" over using another, simpler method.

Here is a short example to put some numbers on the expected error.
Let the driver sample at an interval of 1 ms.  If the system time's
frequency hasn't changed between two samples, A and B, then the driver
may interpolate without introducing any error.

If the frequency is changed between the sample times, then the
interpolated value will have some error.  Because 1 ms is smallest HZ
value, the frequency can change at most once during the sample.  If
the frequency changes near point A or B, then the error is minimal.
The worst case occurs when the frequency is changed half way between A
and B.

Suppose the frequency is changed by 10 PPM, at point C, half way
between A and B.  This change results in a 5 nanosecond time
difference at B (10 PPM over C -> B).  The driver will interpolate
using line A-B with slope increased by 5 PPM, and the worst case
error, found at point C, is then 2.5 nanoseconds.

Thanks,
Richard

WARNING: multiple messages have this Message-ID (diff)
From: Richard Cochran <richardcochran@gmail.com>
To: Thomas Gleixner <tglx@linutronix.de>
Cc: John Stultz <john.stultz@linaro.org>,
	Christopher Hall <christopher.s.hall@intel.com>,
	Jeff Kirsher <jeffrey.t.kirsher@intel.com>,
	"H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>,
	Peter Zijlstra <peterz@infradead.org>,
	"x86@kernel.org" <x86@kernel.org>,
	intel-wired-lan@lists.osuosl.org, netdev@vger.kernel.org,
	lkml <linux-kernel@vger.kernel.org>,
	kevin.b.stanton@intel.com
Subject: Re: [PATCH v4 1/4] Produce system time from correlated clocksource
Date: Tue, 20 Oct 2015 16:55:23 +0200	[thread overview]
Message-ID: <20151020145523.GA5207@netboy> (raw)
In-Reply-To: <20151020115113.GA23428@netboy>

On Tue, Oct 20, 2015 at 01:51:13PM +0200, Richard Cochran wrote:
> You can, in fact, achieve "proper" correlation by sampling.  As John
> said, the question is whether the method in the patch set "measurably
> improves the error" over using another, simpler method.

Here is a short example to put some numbers on the expected error.
Let the driver sample at an interval of 1 ms.  If the system time's
frequency hasn't changed between two samples, A and B, then the driver
may interpolate without introducing any error.

If the frequency is changed between the sample times, then the
interpolated value will have some error.  Because 1 ms is smallest HZ
value, the frequency can change at most once during the sample.  If
the frequency changes near point A or B, then the error is minimal.
The worst case occurs when the frequency is changed half way between A
and B.

Suppose the frequency is changed by 10 PPM, at point C, half way
between A and B.  This change results in a 5 nanosecond time
difference at B (10 PPM over C -> B).  The driver will interpolate
using line A-B with slope increased by 5 PPM, and the worst case
error, found at point C, is then 2.5 nanoseconds.

Thanks,
Richard

  reply	other threads:[~2015-10-20 14:55 UTC|newest]

Thread overview: 86+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-10-12 18:45 [Intel-wired-lan] [PATCH v4 0/4] Patchset enabling hardware based cross-timestamps for next gen Intel platforms Christopher S. Hall
2015-10-12 18:45 ` Christopher S. Hall
2015-10-12 18:45 ` [Intel-wired-lan] [PATCH v4 1/4] Produce system time from correlated clocksource Christopher S. Hall
2015-10-12 18:45   ` Christopher S. Hall
2015-10-13  4:58   ` [Intel-wired-lan] " Richard Cochran
2015-10-13  4:58     ` Richard Cochran
2015-10-13  7:51     ` [Intel-wired-lan] " Thomas Gleixner
2015-10-13  7:51       ` Thomas Gleixner
2015-10-13  8:31       ` [Intel-wired-lan] " Richard Cochran
2015-10-13  8:31         ` Richard Cochran
2015-10-13 19:15         ` [Intel-wired-lan] " Thomas Gleixner
2015-10-13 19:15           ` Thomas Gleixner
2015-10-13 21:12           ` [Intel-wired-lan] " Richard Cochran
2015-10-13 21:12             ` Richard Cochran
2015-10-14  7:21             ` [Intel-wired-lan] " Thomas Gleixner
2015-10-14  7:21               ` Thomas Gleixner
2015-10-14  9:29               ` [Intel-wired-lan] " Richard Cochran
2015-10-14  9:29                 ` Richard Cochran
2015-10-14 14:22                 ` [Intel-wired-lan] " Thomas Gleixner
2015-10-14 14:22                   ` Thomas Gleixner
2015-10-14 16:18                   ` [Intel-wired-lan] " Richard Cochran
2015-10-14 16:18                     ` Richard Cochran
2015-10-15  2:34             ` [Intel-wired-lan] " Christopher Hall
2015-10-15  2:34               ` Christopher Hall
2015-10-15  5:41               ` [Intel-wired-lan] " Richard Cochran
2015-10-15  5:41                 ` Richard Cochran
2015-10-15  8:13                 ` [Intel-wired-lan] " Thomas Gleixner
2015-10-15  8:13                   ` Thomas Gleixner
2015-10-13  5:26   ` [Intel-wired-lan] " Richard Cochran
2015-10-13  5:26     ` Richard Cochran
2015-10-13 13:50   ` [Intel-wired-lan] " Richard Cochran
2015-10-13 13:50     ` Richard Cochran
2015-10-13 19:42   ` [Intel-wired-lan] " Thomas Gleixner
2015-10-13 19:42     ` Thomas Gleixner
2015-10-15  1:57     ` [Intel-wired-lan] " Christopher Hall
2015-10-15  1:57       ` Christopher Hall
2015-10-15  5:57       ` [Intel-wired-lan] " Richard Cochran
2015-10-15  5:57         ` Richard Cochran
2015-10-15  8:15       ` [Intel-wired-lan] " Thomas Gleixner
2015-10-15  8:15         ` Thomas Gleixner
2015-10-20  0:18         ` [Intel-wired-lan] " Christopher Hall
2015-10-20  0:18           ` Christopher Hall
2015-10-20  0:36           ` [Intel-wired-lan] " John Stultz
2015-10-20  0:36             ` John Stultz
2015-10-20  8:54             ` [Intel-wired-lan] " Richard Cochran
2015-10-20  8:54               ` Richard Cochran
2015-10-20 10:48               ` [Intel-wired-lan] " Thomas Gleixner
2015-10-20 10:48                 ` Thomas Gleixner
2015-10-20 11:51                 ` [Intel-wired-lan] " Richard Cochran
2015-10-20 11:51                   ` Richard Cochran
2015-10-20 14:55                   ` Richard Cochran [this message]
2015-10-20 14:55                     ` Richard Cochran
2015-10-20 19:11                     ` [Intel-wired-lan] " Thomas Gleixner
2015-10-20 19:11                       ` Thomas Gleixner
2015-10-20 19:36                       ` [Intel-wired-lan] " Richard Cochran
2015-10-20 19:36                         ` Richard Cochran
2015-10-20 20:16                       ` [Intel-wired-lan] " John Stultz
2015-10-20 20:16                         ` John Stultz
2015-10-21  7:44                         ` [Intel-wired-lan] " Thomas Gleixner
2015-10-21  7:44                           ` Thomas Gleixner
2015-11-03 19:18                           ` [Intel-wired-lan] " Stanton, Kevin B
2015-11-03 19:18                             ` Stanton, Kevin B
2015-11-09 21:17                             ` [Intel-wired-lan] " John Stultz
2015-11-09 21:17                               ` John Stultz
2015-10-12 18:45 ` [Intel-wired-lan] [PATCH v4 2/4] Always running timer " Christopher S. Hall
2015-10-12 18:45   ` Christopher S. Hall
2015-10-13  2:03   ` [Intel-wired-lan] " kbuild test robot
2015-10-13  2:03     ` kbuild test robot
2015-11-18 23:53   ` [Intel-wired-lan] " Jacob Pan
2015-11-18 23:53     ` Jacob Pan
2015-10-12 18:45 ` [Intel-wired-lan] [PATCH v4 3/4] Add PTP_SYS_OFFSET_PRECISE for driver crosstimestamping Christopher S. Hall
2015-10-12 18:45   ` Christopher S. Hall
2015-10-13 13:59   ` [Intel-wired-lan] " Richard Cochran
2015-10-13 13:59     ` Richard Cochran
2015-10-15  2:47     ` [Intel-wired-lan] " Christopher Hall
2015-10-15  2:47       ` Christopher Hall
2015-11-07  2:15     ` [Intel-wired-lan] " Christopher Hall
2015-11-07  2:15       ` Christopher Hall
2015-10-12 18:45 ` [Intel-wired-lan] [PATCH v4 4/4] Adds hardware supported cross timestamp Christopher S. Hall
2015-10-12 18:45   ` Christopher S. Hall
2015-10-13  2:10   ` [Intel-wired-lan] " kbuild test robot
2015-10-13  2:10     ` kbuild test robot
2015-10-13  2:11   ` [Intel-wired-lan] " kbuild test robot
2015-10-13  2:11     ` kbuild test robot
2015-10-13  2:31   ` [Intel-wired-lan] " David Miller
2015-10-13  2:31     ` David Miller

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20151020145523.GA5207@netboy \
    --to=richardcochran@gmail.com \
    --cc=intel-wired-lan@osuosl.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.