[LinuxPPS] cross posting [time-nuts] NTP API on Linux 2.6.26
Remco dB
besten at gmail.com
Wed Jan 7 07:32:51 CET 2009
All,
I think the following posting is of interest to us.
I remember someone patched timex.h to use nano precision with LinuxPPS.
Remco
-------------------------------
Magnus Danielson magnus at rubidium.dyndns.org
Wed Jan 7 04:48:13 UTC 2009
* Previous message: [time-nuts] Standards sought for immunity of shielded
cable links to power-frequency ground loops
* Next message: [time-nuts] NTP API on Linux 2.6.26
* Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Hi!
As I have been investigating the ways of NTPD to fiddle with time in the
LINUX kernel I discovered that /usr/include/linux/timex.h (as supplied
by the kernel) is not in sync with /usr/include/sys/timex.h (as supplied
by glibc 2.7). Since it is the sys/timex.h which is the interface to
NTPD and anyone else (it is actually a neat little interface if
correctly supported).
The fluke is that glibc duplicates the timex.h but has not been updated
since oh... Linux 2.2.0. The linux/timex.h is up to date with the NTP
API as far as I can see (have not checked the details).
There are some links that may be handy:
http://bugs.gentoo.org/attachment.cgi?id=165913&action=view
http://sources.redhat.com/bugzilla/show_bug.cgi?id=9690
http://sourceware.org/ml/libc-alpha/2008-03/msg00076.html
However a small test-program:
#include <stdio.h>
//#include <sys/timex.h>
#include "timex.h"
int main()
{
struct timex foo;
adjtimex(&foo);
printf("TAI Offset %i\n", foo.tai);
return 0;
}
(Notice my quick and dirty hack to use a hacked variant of timex.h as if
the patch was being applied, also notice that the .c part does not apply
to the adjtimex() call but to the ntp_gettime() call which I am not
using, so I do not require that patch for this purpose.)
This should be the kernels feeling of the TAI-UTC difference. I do not
think it reflects that:
magnus at heaven:~/gcc/ntptest$ ./tai
TAI Offset -1553771440
magnus at heaven:~/gcc/ntptest$ ./tai
TAI Offset -263060400
magnus at heaven:~/gcc/ntptest$ ./tai
TAI Offset 238212176
magnus at heaven:~/gcc/ntptest$ ./tai
TAI Offset 658158672
magnus at heaven:~/gcc/ntptest$ ./tai
TAI Offset 1551639632
So I guess there is more to it than that patch alone.
If someone could run the above test-program on some *BSD box or whatever
implementing the NTP API version 4 I would be interested in seeing what
the result would be. It surely isn't the definitive test on the API, but
seems to detect one (of possible several) flaws.
Cheers,
Magnus
More information about the LinuxPPS
mailing list