[ntp:questions] Allan deviation survey
Miroslav Lichvar
mlichvar at redhat.com
Wed Sep 15 08:34:57 UTC 2010
On Tue, Sep 14, 2010 at 07:17:04PM +0000, David L. Mills wrote:
> Miroslav,
>
> Better recalibrate your slide rule. On a 2.8 GHz dual-core Pentium
> running OpenSolaris 10, the measured precision is -21, which works
> out to 470 ns.
That probably just means the system on your machine is not using the
rdtsc instruction when reading time.
> You claim ten times faster. What snake oil are you
> using for your processor? To check, try running the jitter.c program
> in the distribution.
Average 0.000000088
First rank
0 0.000000082
1 0.000000082
2 0.000000082
3 0.000000082
4 0.000000082
5 0.000000082
6 0.000000082
7 0.000000082
8 0.000000082
9 0.000000082
Last rank
799990 0.000013065
799991 0.000013324
799992 0.000013477
799993 0.000013545
799994 0.000013782
799995 0.000014010
799996 0.000019316
799997 0.000023405
799998 0.000034991
799999 0.000111950
But I had to apply the following patch, because there was time stored
as seconds since 1900 in double format, which for current time gives
only about 119ns resolution and so the differences ended up as zero.
--- jitter.c.orig 2008-07-16 23:20:59.000000000 +0200
+++ jitter.c 2010-09-15 10:10:06.000000000 +0200
@@ -15,6 +15,7 @@
#include <sys/time.h>
#include <stdlib.h>
#include "jitter.h"
+#include <time.h>
#define NBUF 800002
#define FRAC 4294967296. /* a bbbbillion */
@@ -33,7 +34,7 @@
char *argv[]
)
{
- l_fp tr;
+ l_fp tr, first;
int i, j;
double dtemp, gtod[NBUF];
@@ -43,11 +44,13 @@
for (i = 0; i < NBUF; i ++)
gtod[i] = 0;
+ get_systime(&first);
/*
* Construct gtod array
*/
for (i = 0; i < NBUF; i ++) {
get_systime(&tr);
+ tr.l_i -= first.l_i;
LFPTOD(&tr, gtod[i]);
}
--
Miroslav Lichvar
More information about the questions
mailing list