Annotation of embedaddon/ntp/html/hints/sgi, revision 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>