Clocks broken on Mac mini

Gary E. Miller gem at rellim.com
Wed Feb 1 00:29:55 UTC 2017


Yo Hal!

On Tue, 31 Jan 2017 15:16:42 -0800
Hal Murray <hmurray at megapathdsl.net> wrote:

> > There was a time I used to buy and provision  10 identical servers
> > at a time. Of the 10, one often had this problem.  The fix was
> > chrony.  
> 
> If you ever get another system where ntpd doesn't work but chrony
> does, I'd like to investigate.

Unlikely, I have not done bulk server buys in 2 years.

> > I think this is clearly an ntpd bug.   
> 
> I think it's more complicated than that.

Of course it is, until we figure out how simple it really is.

> There are long standing occasional reports of ntp classic getting
> stuck with a drift of 500 and not being able to recover by itself.
> It does recover if you delete the drift file and restart ntpd.  I
> assume our code will do the same thing.

I did this on new servers.  So no existing drift file.

> I think your "gives up just before" is off by quite a bit.

No, A/B testing with chronyd and ntpd showed that ntpd only had to
bend the clokc a bit more, like chronyd would do, to lock in.

I don't recall the exact deatils, but the crystal was way slow.


> ntpd has a limit of 500 ppm.  The kernel may have a similar limit.  I
> haven't dived into that corner of the kernel source yet.  A limit may
> be a good idea to prevent the system getting into strange modes where
> it jumps around rather than converging smoothly.  I'm not enough of a
> PLL geek to explain that area but I know that it's easy to get into
> oscillations.

If chronyd can do it, ntpd should be able to do it.

> I hacked our code to have a limit of 2500.  It didn't work.  Somebody
> claimed it was running at 500 ppm.  I don't know if that's the kernel
> or some corner of our code that I didn't catch.  (I think there are
> also a few lines of code in libc.)

Not tried chronyd yet?

> I think it's reasonable for ntpd to expect the kernel clock to be
> reasonably close.

I don't.

> We could have an interesting discussion about how
> close is reasonable, but most systems get well within 500.

We are not talking about most, we are talking about the outliers.

> If not,
> it's usually a bug in the setup/calibration chain someplace.

If chronyd can do it, ntpd should be able to do it.

> > So what is your 'adjtimex -p' output?  
>          mode: 0
>        offset: -6106235

The adjtimex man page says that offset is beyond the range it will accept
drom the command line:

--offset adj
 adj must be in the range -512000...512000.

>     frequency: 565962
>      maxerror: 52530
>      esterror: 1820
>        status: 8193
> time_constant: 6
>     precision: 1
>     tolerance: 32768000
>          tick: 10029
>      raw time:  1485903664s 513432740us = 1485903664.513432740

This is from a RasPi 3:


> I'm not familiar with adjtimex.  I installed in a while ago.  The 
> installation ran it.

Better get familiar with it.  Is is just a command line shim to the same
syscall that ntpd uses to set your clock.  ntp_adjtimex()   or adjtimex()


> Comparing clocks (this will take 70 sec)...done.
> Adjusting system time by 251.512 sec/day to agree with CMOS
> clock...done.
> 
> That's 2911 ppm.
> 
> Looks like ntpd is happy now.

And what was the magic incantation?  Can you reset and make ntpd fail again?

RGDS
GARY
---------------------------------------------------------------------------
Gary E. Miller Rellim 109 NW Wilmington Ave., Suite E, Bend, OR 97703
	gem at rellim.com  Tel:+1 541 382 8588

	    Veritas liberabit vos. -- Quid est veritas?
    "If you can’t measure it, you can’t improve it." - Lord Kelvin
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 455 bytes
Desc: OpenPGP digital signature
URL: <https://lists.ntpsec.org/pipermail/devel/attachments/20170131/0686b9b0/attachment.bin>


More information about the devel mailing list