📄 sgi
字号:
adjtime, tick and tickadj:--------------------------The SGI value for HZ is 100 under Irix 4, with the system clock runningin nominal mode (ftimer off), so the value for tick is 10000 usec.Tickadj is a bit more tricky because of the behaviour of adjtime(),which seems to try to perform the correction over 100-200 seconds, witha rate limit of 0.04 secs/sec for large corrections. Corrections ofless than 0.017 seconds generally complete in less than a second,however.Some measured rates are as follows: Delta Rate (sec/sec) > 1 0.04 0.75 0.04 0.6 0.004 0.5 0.004 0.4 0.0026 0.3 0.0026 0.2 0.0013 0.1 0.0015 0.05 0.0015 0.02 0.0003 0.01 0.015Strange. Anyway, since adjtime will complete adjustments of less than17msec in less than a second, whether the fast clock is on or off, Ihave used a value of 150usec/tick for the tickadj value.Fast clock:-----------I get smoother timekeeping if I turn on the fast clock, thereby makingthe clock tick at 1kHz rather than 100Hz. With the fast clock off, Isee a sawtooth clock offset with an amplitude of 5msec. With it on,the amplitude drops to 0.5msec (surprise!). This may be a consequenceof having a local reference clock which spits out the time at exactlyone-second intervals - I am probably seeing sampling aliasing betweenthat and the machine clock. This may all be irrelevant for machineswithout a local reference clock. Fiddling with the fast clock doesn'tseem to compromise the above choices for tick and tickadj.I use the "ftimer" program to switch the fast clock on when the systemgoes into multiuser mode, but you can set the "fastclock" flag in/usr/sysgen/master.d/kernel to have it on by default. See ftimer(1).timetrim:---------Irix has a kernel variable called timetrim which adjusts the systemtime increment, effectively trimming the clock frequency. Xntpd coulduse this rather than adjtime() to do it's frequency trimming, but Ihaven't the time to explore this. There is a utility program,"timetrim", in the util directory which allows manipulation of thetimetrim value in both SGI and xntpd native units. You can fiddle withdefault timetrim value in /usr/sysgen/master.d/kernel, but I thinkthat's ugly. I just use xntpd to figure out the right value fortimetrim for a particular CPU and then set it using "timetrim" whengoing to multiuser mode.Serial I/O latency:-------------------If you use a local clock on an RS-232 line, look into the kernelconfiguration stuff with regard to improving the input latency (checkout /usr/sysgen/master.d/[sduart|cdsio]). I have a Kinemetrics OM-DChooked onto /dev/ttyd2 (the second CPU board RS-232 port) on an SGICrimson, and setting the duart_rsrv_duration flag to 0 improves thingsa bit.12 Jan 93Steve Clift, CSIRO Marine Labs, Hobart, Australia (clift@ml.csiro.au)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -