File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / ntp / html / hints / sgi
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue May 29 12:08:38 2012 UTC (12 years, 4 months ago) by misho
Branches: ntp, MAIN
CVS tags: v4_2_6p5p0, v4_2_6p5, HEAD
ntp 4.2.6p5

    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>