Re: [ntp:questions] How do I validate my PPS clocks?

2013-02-25 Thread David Taylor

On 24/02/2013 23:11, bodo...@gmail.com wrote:

I can't find or figure out how to validate my ntp results.

I (currently) have two Linux boxes with PPS via the NMEA driver from
Garmins (18  18x) and a Sure board connected to a purpose built
NTP server.  When I set up my first Garmin all of my remote offsets
were negative which seemed unlikely so I set time1 to 5.3ms which
also seems unlikely but  which brought me into congruence with some
nearby stratum 1 servers.

Below is the output* from an intermediate machine on my home network
(3Mb ADSL) which is temporarily connected to several servers.

192.168.0.2 is running with time1 5.3ms.
192.168.0.244 is running with time1 132us.
192.168.0.210 is the appliance and has currently has no adjustments.**

Should I expect /all/ (ignoring the high jitter ones) of the remote
clocks to have negative offsets?

Is there a sensible to way to make this assessment purely within the
NTP system?

  remote   refid  st t when poll reach   delay   offset  jitter
==
+192.168.0.2 .GPS.1 u   14   16  3770.109   -5.429   0.006
*192.168.0.244   .GPS.1 u1   16  3770.1120.000   0.008
+192.168.0.210   .GPS.1 u   15   16  3770.567   -0.001   0.007
-216.66.0.142130.207.244.240  2 u   54   64  377   63.526   -7.131   0.192
-38.229.71.1 204.123.2.72 2 u   25   64  377   67.175   -4.368   0.472
-63.240.161.99   72.26.198.2333 u   19   64  377   70.797   -3.284   0.320
#204.235.61.9128.105.201.11   2 u   17   64  177   73.331   -9.732   0.426
-216.229.4.69216.229.0.1792 u-   64  377   78.848   -4.987   1.337
-199.7.177.206   64.147.116.229   2 u   13   64  377   86.072   -7.451   0.235
#2604:180::8138: 164.244.221.197  2 u   56   64  377   91.521  -33.681  25.573
-198.101.234.139 128.138.140.44   2 u   35   64  377   97.360   -2.065   0.584
#2604:2880::870: 139.78.135.142 u   23   64  377  115.057  -12.785  22.738
-207.7.148.214   204.123.2.5  2 u2   64  377  123.982   -8.091   0.747


*This billboard is sorted by delay.
**You'd have to recompile the control software.


For comparison, my results with a number of different stratum-1 servers 
are here:


  http://www.satsignal.eu/ntp/ntp-offsets.txt

This includes FreeBSD, Linux, and Windows stratum-1 servers.

Unless those PCs are very slow, I would suggest that the time1 value 
should be well under 1 millisecond, and likely under 50 microseconds. 
My own results mostly show a positive offset for remote servers, which I 
put down to asymmetry on my consumer Cable Modem connection (30 Mb/s 
down, 3 Mb/s up).


The remote servers are a mixture of pool and other servers, some 
stratum-2 and some stratum-3.  Be aware that some of the national 
stratum-1 servers can be rather overloaded, producing poorer performance 
than the better stratum-2 servers.  Equally, servers in the pool may 
well be not as good as the best stratum-2 servers.  So it's a little pot 
luck!


Does that help?
--
Cheers,
David
Web: http://www.satsignal.eu

___
questions mailing list
questions@lists.ntp.org
http://lists.ntp.org/listinfo/questions


Re: [ntp:questions] How do I validate my PPS clocks?

2013-02-25 Thread Kasper Pedersen
On 02/25/2013 12:11 AM, bodo...@gmail.com wrote:
 I can't find or figure out how to validate my ntp results.
 
 I (currently) have two Linux boxes with PPS via the NMEA driver from
 Garmins (18  18x) and a Sure board connected to a purpose built
 NTP server.  When I set up my first Garmin all of my remote offsets
 were negative which seemed unlikely so I set time1 to 5.3ms which
 also seems unlikely but  which brought me into congruence with some
 nearby stratum 1 servers.

You can put tight boundaries on it by using what you have, and adding up
all the delays:

I did this measurement on the 18x:
 http://n1.taur.dk/gps18x/
and found the PPS, measured on the 18x before the cable, to be
[85ns..140ns] slow.

When the signal has passed though 10m cable, it becomes [115ns..0.5us] slow.

Whether you are feeding PPS directly to DCD, or through an RS232 driver,
mostly only matters for noise suppression. The input propagation
delay of a typical RS232 receiver is ~500ns, and 4us more if you use a
really slow (external) RS232 driver in front of it.

So the PPS arrives on the pin of the UART chip on the motherboard [115ns
.. 5us] slow.

From the PPS arrives, and to the kernel timestamps it, is a very long time.
I wrote this to measure it:
 http://n1.taur.dk/edgetest.c
(you will need a linux machine, gcc, and kernel-headers to compile)

You use it on an NTP server that has had time to settle. It then does a
polled test on the port, and the result is a bracket, without interrupt
delay being a problem, within which the transition is guaranteed to have
taken place:

Falling edge:
 __
 \ \
  \ \
   \_\_

|  |  |
  -9 ---+  |  |
  -7 --+  |
  -4 -+

This is from my ntp server. What it tells me is that the falling edge of
the PPS pin on the chip on the motherboard happened somewhere between 9
and 4 us before '0 seconds' on the server, that is, my server is
provably slow compared to the PPS.
My time1 value is already 42 us, but should apparently be 49 us to
compensate for the (very large) interrupt delay.

(I have an RS232 driver between the GPS and the serial port, thus I am
interested in the negative edge.)

Picking the wrong edge on the 18x gives you 20ms min, 100ms default,
error, so that's easy to spot.

The conclusion is that your path to the internet most likely has 11ms
difference in the in- and outbound delays.


/Kasper Pedersen


___
questions mailing list
questions@lists.ntp.org
http://lists.ntp.org/listinfo/questions


Re: [ntp:questions] How do I validate my PPS clocks?

2013-02-25 Thread Miroslav Lichvar
On Mon, Feb 25, 2013 at 01:44:02PM +0100, Kasper Pedersen wrote:
 From the PPS arrives, and to the kernel timestamps it, is a very long time.
 I wrote this to measure it:
  http://n1.taur.dk/edgetest.c
 (you will need a linux machine, gcc, and kernel-headers to compile)

Very interesting, thanks! For my machine it shows that the interrupt
latency is around 12 us.

I'm wondering if the kernel module could have an option which would
enable a polling method to time stamp the PPS events.

-- 
Miroslav Lichvar
___
questions mailing list
questions@lists.ntp.org
http://lists.ntp.org/listinfo/questions


Re: [ntp:questions] How do I validate my PPS clocks?

2013-02-25 Thread unruh
On 2013-02-25, Miroslav Lichvar mlich...@redhat.com wrote:
 On Mon, Feb 25, 2013 at 01:44:02PM +0100, Kasper Pedersen wrote:
 From the PPS arrives, and to the kernel timestamps it, is a very long time.
 I wrote this to measure it:
  http://n1.taur.dk/edgetest.c
 (you will need a linux machine, gcc, and kernel-headers to compile)

 Very interesting, thanks! For my machine it shows that the interrupt
 latency is around 12 us.

 I'm wondering if the kernel module could have an option which would
 enable a polling method to time stamp the PPS events.

When I ran a test many years ago I used a program to put out a rising
pulse onto one of the printer port output pins, and then connected that
to the parallel port nack pin. I timestamped the time just before I put
out the pulse, and the time at which the interrupt occured and got
roughtly 1 to 2 microseconds delay. Ie, the interrupt service was of the
order of 1us.  12us seems really long. Now this might be a difference
between the serial and parallel interrupts or a difference in the
interrupt sevice routine, but 12us still seems a long time. 




___
questions mailing list
questions@lists.ntp.org
http://lists.ntp.org/listinfo/questions


Re: [ntp:questions] PPS only configuration

2013-02-25 Thread Richard B. Gilbert
On 2/20/2013 5:00 PM, E-Mail Sent to this address will be added to the 
BlackLists wrote:

On 2/20/2013 12:17 PM, Richard B. Gilbert wrote:

The Thunderbird Mail Client does NOT automagically insert
 line breaks when the sender has failed to do so.
Fortunately, almost everyone limits their line length
 to what will fit on most video terminals.

Thank you and please continue to limit your line length!


Thunderbird, there is [CRTL]R Edit ReWrap

Also in Thunderbird you can change you config as needed: e.g.
  Tools - Options - Advanced: Config Editor,
   mailnews.display.disable_format_flowed_support false
   mailnews.send_plaintext_flowed true
   mailnews.wraplength 65

   mail.compose.wrap_to_window_width true
   mail.wrap_long_lines true

Below is a 1000 char line that displays as about 150 characters per line
on my full screen display, I guess we'll see how it comes out on the
other end.

123456789 123456789 123456789 123456789 123456789 123456789 123456789
123456789 123456789 123456789 123456789 123456789 123456789 123456789
123456789 123456789 123456789 123456789 123456789 123456789 123456789
123456789 123456789 123456789 123456789 123456789 123456789 123456789
123456789 123456789 123456789 123456789 123456789 123456789 123456789
123456789 123456789 123456789 123456789 123456789 123456789 123456789
123456789 123456789 123456789 123456789 123456789 123456789 123456789
123456789 123456789 123456789 123456789 123456789 123456789 123456789
123456789 123456789 123456789 123456789 123456789 123456789 123456789
123456789 123456789 123456789 123456789 123456789 123456789 123456789
123456789 123456789 123456789 123456789 123456789 123456789 123456789
123456789 123456789 123456789 123456789 123456789 123456789 123456789
123456789 123456789 123456789 123456789 123456789 123456789 123456789
123456789 123456789 123456789 123456789 123456789 123456789 123456789
123456789 123456789




Thunderbird Mail/News Client renders the above as seven, nine character 
columns.  The columns are separated by single spaces.  No problem 
reading it!


___
questions mailing list
questions@lists.ntp.org
http://lists.ntp.org/listinfo/questions


Re: [ntp:questions] How do I validate my PPS clocks?

2013-02-25 Thread ramadog
On Tuesday, February 26, 2013 6:32:53 AM UTC+10, unruh wrote:
 When I ran a test many years ago I used a program to put out a rising
 
 pulse onto one of the printer port output pins, and then connected that
 
 to the parallel port nack pin. I timestamped the time just before I put
 
 out the pulse, and the time at which the interrupt occured and got
 
 roughtly 1 to 2 microseconds delay. Ie, the interrupt service was of the
 
 order of 1us.  12us seems really long. Now this might be a difference
 
 between the serial and parallel interrupts or a difference in the
 
 interrupt sevice routine, but 12us still seems a long time. 

Awhile back when I did similar using a parallel port pin to trigger dcd with 
the p3-600 I am currently using for my ntp server there was an average of 2.6us 
difference between the 2 time stamps.

For pps I use a time stamp taken at the beginning of handle_irq() in 
arch/x86/kernel/irq_32.c. Using a 3.5.7 kernel there is a 11us difference 
between that time stamp vs the serial pps time stamp taken in the ldisc code. 
Add some cpu load and the difference climbs to 14us. The 12us delay mentioned 
above is close to what I am seeing.

___
questions mailing list
questions@lists.ntp.org
http://lists.ntp.org/listinfo/questions


Re: [ntp:questions] How do I validate my PPS clocks?

2013-02-25 Thread unruh
On 2013-02-26, rama...@gmail.com rama...@gmail.com wrote:
 On Tuesday, February 26, 2013 6:32:53 AM UTC+10, unruh wrote:
 When I ran a test many years ago I used a program to put out a rising
 
 pulse onto one of the printer port output pins, and then connected that
 
 to the parallel port nack pin. I timestamped the time just before I put
 
 out the pulse, and the time at which the interrupt occured and got
 
 roughtly 1 to 2 microseconds delay. Ie, the interrupt service was of the
 
 order of 1us.  12us seems really long. Now this might be a difference
 
 between the serial and parallel interrupts or a difference in the
 
 interrupt sevice routine, but 12us still seems a long time. 

 Awhile back when I did similar using a parallel port pin to trigger dcd with 
 the p3-600 I am currently using for my ntp server there was an average of 
 2.6us 
 difference between the 2 time stamps.

 For pps I use a time stamp taken at the beginning of handle_irq() in 
 arch/x86/kernel/irq_32.c. Using a 3.5.7 kernel there is a 11us difference 
 between that time stamp vs the serial pps time stamp taken in the ldisc code. 
 Add some cpu load and the difference climbs to 14us. The 12us delay mentioned 
 above is close to what I am seeing.

Hm. That tells me that ldisc code really is pretty bad. In my case I
used a parallel port module which I adapted from Linux Device Drivers
by Alessandro Rubini and Jonathan Corbet. to time the parallel port IRQ
handling. And I only saw 1-2 us difference. Why are you getting 12us on
the ldisc code?

___
questions mailing list
questions@lists.ntp.org
http://lists.ntp.org/listinfo/questions