Re: [PATCH -stable] ntp: Correct TAI offset during leap second

From: John Stultz
Date: Tue Jun 19 2012 - 13:27:01 EST


On 06/19/2012 04:54 AM, Ben Hutchings wrote:
On Mon, 2012-06-18 at 18:28 +0200, Richard Cochran wrote:
On Mon, Jun 18, 2012 at 02:55:11PM +0100, Ben Hutchings wrote:
On Sun, 2012-06-17 at 19:34 +0200, Richard Cochran wrote:
The offset should change upon entering state OOP, so something like
the following (untested) patch should fix it for 3.2.9.
[...]

It looks like this patch just changes the offset reported by adjtimex()
during an inserted second; is that right?
Right, nothing really terrible will happen. The worst that I can
imagine is that ntpd will set the new TAI offset during OOP, and then
the kernel will add one to it, resulting in the TAI offset being off
by one.

But I really doubt any software makes use of this information.

Other than that, is 3.2.y likely to be OK? Is there a good way to test
that in advance; does
<http://codemonkey.org.uk/2012/06/15/testing-leap-code/> look
reasonable?
Well, if you want to wait all night then that is one way to do it.
I was intending to change the clock too...

Here is a little test program I have been using:

https://github.com/richardcochran/leap
Thanks, that runs without incident but does show the incorrect offset
during OOP.
Yep. That's a long-standing issue, due to the leap-second processing happening at tick time (further complicated since to handle NOHZ, we accumulate in fixed-tick intervals that don't exactly line up with the interrupt edge), so we'll usually get one to two ticks into the second before we apply the leap second.

Richard has recently taken a stab at correcting this.

Richard, are you planning on taking another go at those changes? Or were my last suggestions just too daft? ;)

thanks
-john


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/