Annotation of embedaddon/ntp/html/hints/sgi, revision 1.1.1.1

1.1       misho       1: adjtime, tick and tickadj:
                      2: --------------------------
                      3: 
                      4: The SGI value for HZ is 100 under Irix 4, with the system clock running
                      5: in nominal mode (ftimer off), so the value for tick is 10000 usec.
                      6: Tickadj is a bit more tricky because of the behaviour of adjtime(),
                      7: which seems to try to perform the correction over 100-200 seconds, with
                      8: a rate limit of 0.04 secs/sec for large corrections.  Corrections of
                      9: less than 0.017 seconds generally complete in less than a second,
                     10: however.
                     11: 
                     12: Some measured rates are as follows:
                     13: 
                     14:        Delta       Rate (sec/sec)
                     15: 
                     16:        > 1             0.04
                     17:        0.75            0.04
                     18:        0.6             0.004
                     19:        0.5             0.004
                     20:        0.4             0.0026
                     21:        0.3             0.0026
                     22:        0.2             0.0013
                     23:        0.1             0.0015
                     24:        0.05            0.0015
                     25:        0.02            0.0003
                     26:        0.01            0.015
                     27: Strange.  Anyway, since adjtime will complete adjustments of less than
                     28: 17msec in less than a second, whether the fast clock is on or off, I
                     29: have used a value of 150usec/tick for the tickadj value.
                     30: 
                     31: Fast clock:
                     32: -----------
                     33: 
                     34: I get smoother timekeeping if I turn on the fast clock, thereby making
                     35: the clock tick at 1kHz rather than 100Hz.  With the fast clock off, I
                     36: see a sawtooth clock offset with an amplitude of 5msec.  With it on,
                     37: the amplitude drops to 0.5msec (surprise!).  This may be a consequence
                     38: of having a local reference clock which spits out the time at exactly
                     39: one-second intervals - I am probably seeing sampling aliasing between
                     40: that and the machine clock.  This may all be irrelevant for machines
                     41: without a local reference clock.  Fiddling with the fast clock doesn't
                     42: seem to compromise the above choices for tick and tickadj.
                     43: 
                     44: I use the "ftimer" program to switch the fast clock on when the system
                     45: goes into multiuser mode, but you can set the "fastclock" flag in
                     46: /usr/sysgen/master.d/kernel to have it on by default.  See ftimer(1).
                     47: 
                     48: timetrim:
                     49: ---------
                     50: 
                     51: Irix has a kernel variable called timetrim which adjusts the system
                     52: time increment, effectively trimming the clock frequency.  Xntpd could
                     53: use this rather than adjtime() to do it's frequency trimming, but I
                     54: haven't the time to explore this.  There is a utility program,
                     55: "timetrim", in the util directory which allows manipulation of the
                     56: timetrim value in both SGI and xntpd native units.  You can fiddle with
                     57: default timetrim value in /usr/sysgen/master.d/kernel, but I think
                     58: that's ugly.  I just use xntpd to figure out the right value for
                     59: timetrim for a particular CPU and then set it using "timetrim" when
                     60: going to multiuser mode.
                     61: 
                     62: Serial I/O latency:
                     63: -------------------
                     64: 
                     65: If you use a local clock on an RS-232 line, look into the kernel
                     66: configuration stuff with regard to improving the input latency (check
                     67: out /usr/sysgen/master.d/[sduart|cdsio]).  I have a Kinemetrics OM-DC
                     68: hooked onto /dev/ttyd2 (the second CPU board RS-232 port) on an SGI
                     69: Crimson, and setting the duart_rsrv_duration flag to 0 improves things
                     70: a bit.
                     71: 
                     72: 
                     73: 12 Jan 93
                     74: Steve Clift, CSIRO Marine Labs, Hobart, Australia (clift@ml.csiro.au)

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>