NTP issues with 5.4 (SOLVED) (fwd)

Darrel dlevitch at iglou.com
Sat May 21 17:48:40 PDT 2005


On Sat, 21 May 2005, Christian Hiris wrote:

> On Saturday 21 May 2005 15:56:15, Darrel wrote:
>> On Fri, 20 May 2005, Christian Hiris wrote:
>>> On Friday 20 May 2005 01:01:01, Darrel wrote:
>
> [...]
>
>> Thanks, Christian!
>>
>> I am comparing to a NetBSD computer with older hardware, that seems to
>> always have PLL enabled:
>>
>> May 14 18:26:10 ntpd[343]: ntpd 4.2.0-r Wed Mar 23 08:12:50 UTC
>> 2005 (1)
>> May 14 18:26:11 ntpd[343]: precision = 2.000 usec
>> May 14 18:26:11 ntpd[343]: kernel time sync status 0040
>> May 14 18:26:12 ntpd[343]: frequency initialized 74.725 PPM
>> from /var/db/ntp.drift
>> May 14 18:29:29 ntpd[343]: time reset -1.128987 s
>> May 14 18:29:29 ntpd[343]: kernel time sync disabled 0041
>> May 14 18:35:49 ntpd[343]: kernel time sync enabled 0001
>>
>> Probably the 4 indicates that the clock had drifted too far for the
>> program to permit syncing to- perhaps the battery should be replaced.
>
> No, that's ok. The synchronization takes some minutes. The '1' indicates that
> PLL updates enabled, but it doesn't tell you much about the actual PLL/FFL
> mode. About weak batteries - I run ntpd on a i386 machine that had no battery
> inserted w/o any problems.
>
>> I
>> am still not sure why we do not see the new NTP4 mode shift to FLL, as
>> with the FreeBSD computer.
>>
>> Maybe the /var/log/messages are just implemented differently on NetBSD
>> 2.02.  I will watch it occasionally with 'ntpdc -c kerninfo | grep
>> status'.  This NetBSD clock is also set to UTC and it seems that I
>> recall that UTC can be improperly implemented when the computer
>> previously had Microsoft Windows installed.
>
> The answer to your question is quite simple. The status bit STA_MODE hasn't
> been implemented in netBSD. I run a diff on FreeBSD's and netBSD's timex.h to
> point out the status bits differences:
>
> $ diff -u timex.h-freebsd timex.h-netbsd | grep STA_
> - *     format in use is determined by the STA_NANO bit of the status
> - *     STA_NANO bit in the status word. See the description below for
> - * STA_FLL bit in the status word.
> #define STA_PLL                0x0001  /* enable PLL updates (rw) */
> #define STA_PPSFREQ    0x0002  /* enable PPS freq discipline (rw) */
> #define STA_PPSTIME    0x0004  /* enable PPS time discipline (rw) */
> -#define STA_FLL                0x0008  /* enable FLL mode (rw) */
> +#define STA_FLL                0x0008  /* select frequency-lock mode (rw) */
> #define STA_INS                0x0010  /* insert leap (rw) */
> #define STA_DEL                0x0020  /* delete leap (rw) */
> #define STA_UNSYNC     0x0040  /* clock unsynchronized (rw) */
> #define STA_FREQHOLD   0x0080  /* hold frequency (rw) */
> #define STA_PPSSIGNAL  0x0100  /* PPS signal present (ro) */
> #define STA_PPSJITTER  0x0200  /* PPS signal jitter exceeded (ro) */
> #define STA_PPSWANDER  0x0400  /* PPS signal wander exceeded (ro) */
> #define STA_PPSERROR   0x0800  /* PPS signal calibration error (ro) */
> #define STA_CLOCKERR   0x1000  /* clock hardware fault (ro) */
>
> -#define STA_NANO       0x2000  /* resolution (0 = us, 1 = ns) (ro) */
> -#define STA_MODE       0x4000  /* mode (0 = PLL, 1 = FLL) (ro) */
> -#define STA_CLK                0x8000  /* clock source (0 = A, 1 = B) (ro) */
>
> #define STA_RONLY (STA_PPSSIGNAL | STA_PPSJITTER | STA_PPSWANDER | \
> -    STA_PPSERROR | STA_CLOCKERR | STA_NANO | STA_MODE | STA_CLK)
> +    STA_PPSERROR | STA_CLOCKERR) /* read-only bits */
>
> - * Note: The time member is in microseconds if STA_NANO is zero and
> - * STA_NANO is zero and nanoseconds if not.
>
> The complete sources are available via cvsweb:
> http://www.freebsd.org/cgi/cvsweb.cgi/~checkout~/src/sys/sys/timex.h
> http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/dist/ntp/kernel/sys/timex.h
>
> Cheers,
> ch
>
> -- 
> Christian Hiris <4711 at chello.at> | OpenPGP KeyID 0x3BCA53BE
> OpenPGP-Key at hkp://wwwkeys.eu.pgp.net and http://pgp.mit.edu
>

Thanks, Christian!

And the FreeBSD computer has resolution to nanoseconds.  Also, I 
upgraded the netBSD to 2.02_STABLE and compiled the kernel with 
RTC_OFFSET=0.

Cheers,
Darrel


More information about the freebsd-questions mailing list