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