[ntp:questions] Re: ntpd PLL and clock overshoot

user at domain.invalid user at domain.invalid
Mon Oct 16 16:01:53 UTC 2006


Guys,

In all kernels I have seen over the last several years the adjtime() 
system call is implemented in the kernel/kern_clock.c kernel module. 
There may be a library wrapper for it, but the actual adjustment is done 
in the kernel at each timer interrupt.

Dave

Uwe Klein wrote:

> Hal Murray wrote:
> 
>> [100% overshoot]
>>
>>
>>> I believe that Dave Mills has already explained that the problem is 
>>> due to changes in the adjtime() routine in both Sun Solaris and Unix. 
>>> This being the case, the choices would seem to be:
>>> a. Live with it.
>>> b. Get Sun and the Linux developers to back out the change to 
>>> adjtime() that broke ntpd.
>>> c. Provide a custom adjtime() for each platform affected.  I suspect 
>>> that the routine in question runs in kernel mode and may be part of 
>>> the kernel so that this may be easier said than done!
>>
>>
>>
>> I assume the fix is something simple like replacing a select with
>> a simple assignment.
>>
>> For Linux, it would help some of us if somebody would track down
>> the place that needs fixing and publish a diff.  I took a quick
>> scan and didn't find it, but my kernel may be before somebody added
>> that tweak.
>>
> any specifics where to look?
> 
> the public visible adjtime(x) seems to live in glibc.
> 
> uwe




More information about the questions mailing list