[prev in list] [next in list] [prev in thread] [next in thread] 

List:       ntp-bugs
Subject:    [ntp:bugs] [Bug 740] New: The frequency in the kernel time
From:       bugzilla () ntp ! isc ! org
Date:       2006-11-20 14:34:35
Message-ID: 20061120143435.68C62398A3 () ntp2 ! ntp ! isc ! org
[Download RAW message or body]

http://bugs.ntp.isc.org/740

           Summary: The frequency in the kernel time discipline is
                    initialized from the drift file, even when the kernel
                    time discipline itself is not used
           Product: ntp
           Version: 4.2.3
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P3
         Component: ntpd
        AssignedTo: stenn@ntp.org
        ReportedBy: Juergen.Salm@siemens.com
                CC: bugs@ntp.isc.org


When using the '-x' command line option or setting the step threshold to 0 or 
larger than 128ms, the documentation says.

Note: The kernel time discipline is disabled with this option.
Note: The kernel time discipline is disabled if the step threshold is set to 
zero or greater than the default.

However, even under these conditions, the frequency is initialized from the 
drift file.

This leads to the following strange effect.

Let's say we have a real drift of 70ppm, while the drift file says 50.000.

When ntpd is started, the frequency in the kernel time discipline will be 
initialized to 50ppm Afterwards, ntpd will measure 20ppm (the different that is 
not already compensated by the kernel) and write this value to the drift file.
Next time when ntpd is started, the kernel time discipline will be initialized 
with 20pp and ntpd will measure 50ppm and write is to the drift file.

So every time ntpd is started, the drift will alternate between 20ppm and 50ppm.

Or more general, between x-a and x-b, with x as the real drift and b = x-a.

Well, this is funny to watch but is brings an unnecessary long transition 
period at every ntpd restart, before thing get stable.

I've corrected the behavior with the following modification.

diff -r ntp-dev-4.2.3p64-RC/ntpd/ntp_loopfilter.c ntp-dev-4.2.3p64-RC-
modified_Salm/ntpd/ntp_loopfilter.c
988c988
<               if (pll_control && kern_enable) {
---
>               if (pll_control && kern_enable && clock_max <= CLOCK_MAX 
> ) {

I don't know whether this is the right place and the right way to fix the 
problem. (I even don't know if you see this as a problem.) But it works fine 
for me. ;-)

Bye
	Juergen Salm

-- 
Juergen Salm <Juergen.Salm@siemens.com>



------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.
_______________________________________________
bugs mailing list
bugs@lists.ntp.isc.org
https://lists.ntp.isc.org/mailman/listinfo/bugs
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic