[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20181102123158.GN19434@localhost>
Date: Fri, 2 Nov 2018 13:31:58 +0100
From: Miroslav Lichvar <mlichvar@...hat.com>
To: Thomas Gleixner <tglx@...utronix.de>
Cc: John Stultz <john.stultz@...aro.org>,
Christopher Hall <christopher.s.hall@...el.com>,
"H. Peter Anvin" <hpa@...or.com>,
linux-rt-users <linux-rt-users@...r.kernel.org>,
jesus.sanchez-palencia@...el.com,
Gavin Hindman <gavin.hindman@...el.com>,
liam.r.girdwood@...el.com, Peter Zijlstra <peterz@...radead.org>,
LKML <linux-kernel@...r.kernel.org>
Subject: Re: TSC to Mono-raw Drift
On Fri, Nov 02, 2018 at 12:25:56PM +0100, Thomas Gleixner wrote:
> On Fri, 2 Nov 2018, Miroslav Lichvar wrote:
> > clocksource -> MONOTONIC_RAW -> MONOTONIC/REALTIME
> >
> > or
> >
> > clocksource -> ? -> MONOTONIC_RAW
> > -> MONOTONIC/REALTIME
>
> That's what we have now. At least I don't see how the raw thing is coupled
> in NTP.
Oh, right.
So, for the first approach when the raw clock is stepped, the same
step needs to be applied to the mono clock. That means the mono clock
will have two large independent corrections applied to it, which will
make it less stable, e.g. steps of up to 8 ns at 100 Hz instead of 4
ns. Otherwise they would drift from each other when not synchronized
by NTP/PTP.
In the second approach, the corrections of the two clocks are
independent, but the NTP tick length needs to be adjusted before the
multiplier is calculated to match the frequency of the raw clock. If
the correction was applied later, I suspect it would require a +2 mult
adjustment or larger steps as in the first approach.
That tick adjustment generally won't be perfectly accurate, so an
extra small correction would be needed to keep the clocks in sync over
long intervals. This could be a +1 adjustment of the NTP tick length,
or it could be a small forward step. I'm not sure what would be easier
to implement.
Does that make sense?
--
Miroslav Lichvar
Powered by blists - more mailing lists