time drift

Volker Jahns volker at thalreit.de
Fri May 16 19:30:45 UTC 2008


Volker Jahns wrote:
> Bruce Cran wrote:
>> Volker Jahns wrote:
>>> On Thu, May 15, 2008 at 09:53:02PM +0200, Volker Jahns wrote:
>>>> On Thu, May 15, 2008 at 12:18:57PM -0700, Chuck Swiger wrote:
>>>>> On May 15, 2008, at 11:57 AM, Volker Jahns wrote:
>>>>>> FreeBSD 6.2 running on X86 hardware (FSC) shows a remarkable 
>>>>>> time  drift
>>>>>>
>>>>>> running ntpdate every half hour shows that the system looses 
>>>>>> about  10-14 sec each time.
>>>>>> 15 May 10:06:48 ntpdate[7200]: step time server 192.53.103.108  
>>>>>> offset -13.799602 sec
>>>>>> 15 May 10:36:48 ntpdate[7515]: step time server 192.53.103.108  
>>>>>> offset -12.813941 sec
>>>>>> 15 May 11:06:48 ntpdate[7879]: step time server 192.53.103.108  
>>>>>> offset -13.651921 sec
>>>>>> 15 May 11:36:50 ntpdate[8079]: step time server 192.53.103.108  
>>>>>> offset -11.109298 sec
>>>>>> 15 May 12:06:50 ntpdate[8289]: step time server 192.53.103.108  
>>>>>> offset -11.836499 sec
>>>>> You should also take a look at the output of "sysctl  
>>>>> kern.timecounter", and possibly switch to a different mechanism, 
>>>>> if  the existing choice doesn't work out well for your machine...
>>>> Thanks for the hint.
>>> A few years ago a time drift problem had been observed by a German 
>>> freebsd
>>> user (http://www.freebsd.de/rachive/de-bsd-questions.200304/0643.html).
>>> Time drift 15 sec every half hour, ntpd dies away running on his 
>>> machine.
>>>     Setting kern.timecounter.hardware to TSC had been recommended as 
>>> a solution.
>>
>> There's also a FreeBSD PR open about this problem: 
>> http://www.freebsd.org/cgi/query-pr.cgi?pr=i386/123462
>>
>>
> sysctl -w kern.timecounter.hardware=TSC and then this:
> 16 May 08:37:01 ntpdate[28819]: adjust time server 192.53.103.108 
> offset -0.347027 sec
> 16 May 09:07:00 ntpdate[29258]: adjust time server 192.53.103.108 
> offset -0.313608 sec
> 16 May 09:37:00 ntpdate[29492]: adjust time server 192.53.103.108 
> offset -0.314357 sec
> 16 May 10:07:00 ntpdate[29826]: adjust time server 192.53.103.108 
> offset -0.313694 sec
>
>
> (Please note the use of ntpdate is for debugging purposes only, this 
> is _not_ an ntp issue)
>
Finally I want to come back to the time drift issue and howto improve 
it. Setting
kern.timecounter.hardware: i8254
machdep.i8254_freq: 1193182

16 May 12:07:01 ntpdate[31752]: adjust time server 192.53.103.108 offset 
-0.404453 sec
16 May 12:37:00 ntpdate[32425]: adjust time server 192.53.103.108 offset 
-0.396156 sec
16 May 13:07:01 ntpdate[32787]: adjust time server 192.53.103.108 offset 
-0.383712 sec
16 May 13:37:01 ntpdate[33126]: adjust time server 192.53.103.108 offset 
-0.387233 sec

Clock is too slow, frequency must be increased.
Corrected machdep.i8254_freq  from  1193182  to 1193448

16 May 17:37:00 ntpdate[36310]: adjust time server 192.53.103.108 offset 
-0.033320 sec
16 May 18:07:01 ntpdate[36632]: adjust time server 192.53.103.108 offset 
-0.053532 sec
16 May 18:37:00 ntpdate[37011]: adjust time server 192.53.103.108 offset 
-0.043264 sec
16 May 19:07:01 ntpdate[37361]: adjust time server 192.53.103.108 offset 
-0.055725 sec

Time drift is now only about 50 millisecs per half an hour.

-- 
Volker Jahns, volker at thalreit.de



More information about the freebsd-questions mailing list