Annotation of embedaddon/ntp/html/hints/solaris.xtra.4023118, revision 1.1.1.1

1.1       misho       1:  Bug Id: 4023118
                      2:  Category: kernel
                      3:  Subcategory: other
                      4:  State: integrated
                      5:  Synopsis: sun4u doesn't keep accurate time
                      6:  Description:
                      7: 
                      8: [ bmc, 12/20/96 ]
                      9: 
                     10: The clock on a sun4u drifts unacceptably.  On a typical 143 mHz Ultra,
                     11: the clock took 1.0001350 seconds to count 1 second.  While this may seem
                     12: trivial, it adds up quickly.  In this case, the TOD chip will have to
                     13: pull the clock forward by 2 seconds every 4 hours and 7 minutes.
                     14: This drift rate is so high, that the clock is close to being too broken
                     15: for NTP to guarantee correctness (in order for NTP's mechanism to work,
                     16: it must be assured that the local clock drifts no more than 20 ms in 64
                     17: seconds;  this particular 143 mHz Ultra will drift by nearly 9 ms in that
                     18: period).  This problem has been reproduced on virtually all sun4u
                     19: classes.
                     20: 
                     21: The fundamental problem lies in the kernel's perception of ticks per
                     22: second.  The PROM is responsible for determining this figure exactly,
                     23: and the kernel extracts it into the variable cpu_tick_freq.  On sun4u's,
                     24: this number is disconcertingly round:  143000000, 167000000, 248000000,
                     25: etc.  Indeed, a simple experiment revealed that these numbers were
                     26: quite far from the actual ticks per second.  Typical was the 143 mHz
                     27: Ultra which was discovered to tick around 142,980,806 (+/- 10) times
                     28: per second.
                     29: 
                     30:  Work around:
                     31: 
                     32:         Integrated in releases: s297_27
                     33:  Duplicate of:
                     34:  Patch id:
                     35:  See also:
                     36:  Summary:

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