From: Miroslav Lichvar <mlichvar@redhat.com>
To: Ingo Molnar <mingo@elte.hu>
Cc: John Stultz <johnstul@us.ibm.com>,
Thomas Gleixner <tglx@linutronix.de>,
Linus Torvalds <torvalds@linux-foundation.org>,
Andrew Morton <akpm@linux-foundation.org>,
LKML <linux-kernel@vger.kernel.org>
Subject: Re: [GIT pull] ntp updates for 2.6.31
Date: Tue, 23 Jun 2009 15:16:28 +0200 [thread overview]
Message-ID: <20090623131628.GA11827@localhost> (raw)
In-Reply-To: <20090623095745.GC30634@elte.hu>
On Tue, Jun 23, 2009 at 11:57:45AM +0200, Ingo Molnar wrote:
> > > Wouldnt the goal be to calibrate as fast as possible? (Without
> > > any bad oscillation)
> >
> > Not really. It depends on how noisy is the input signal. On an
> > idle LAN the jitter is just few microseconds, but over internet it
> > easily reaches miliseconds. Over a certain point faster PLL will
> > just make things worse.
>
> That is what i called 'bad oscillation' - a 'too fast' PLL that
> over-compensates and does not converge well enough.
>
> Is there a claim that this change causes that? (John's testing
> suggested that there's no such effect)
I think John's tests were done on LAN and in an environment with
sudden temperature changes. This is the case where frequency
variations strongly dominate the noise and faster PLL performs better.
On the opposite side is an idle machine in a room with stable
temperature syncing over wireless or dial-up. I don't have access to
such machine, but in simulations (noise with exponential distribution)
I see that offset RMS doubles when the time constant is decreased by 2.
Maybe for most of the users the change would be an improvement. I
don't have any statistics to back it up or claim otherwise. However,
if the constant needs to be adjusted, it's better to do it in NTP.
> > PLL is mainly about handling the signal noise, frequency adjusting
> > is secondary. When the noise is very low or the update interval is
> > long enough, the frequency variations caused by temperature
> > changes will dominate the signal noise and this is where FLL
> > should kick in.
> >
> > The PLL/FLL switching is controlled by update interval. Ideally it
> > would be adaptive, but NTP is not that sophisticated. By default,
> > FLL is enabled when the interval is longer than 2048 seconds. This
> > is of course not the optimal value for all systems.
> >
> > Unfortunately in kernel it can be configured only to 2048 or 256
> > and NTP never uses the shorter one. The NTP daemon has its own
> > loop which can be used instead and it allows to use arbitrary
> > values though.
>
> How about going towards the ideal, adaptive design, to which ntpd
> passes in time samples and which observes noise and converges as
> quickly as possible (given the noise level) and stays stable once
> there? I guess we need extensions to the NTP syscall for that.
Not sure how hard that would be. The ntp-hackers list is a better
place to discuss such modifications.
Other NTP clients don't have to use the PLL interface. For example,
chrony uses only the SINGLESHOT mode and sets the frequency directly.
It has an adaptive model using linear regression, it converges really
fast and in my tests performs better than NTP.
> The NTP code in kernel/time/ntp.c is now reasonably clean for
> efforts like that.
>
> It would also pave the way to properly support PPS devices in the
> kernel. Would you be interested in things like this?
I'm not very familiar with the PPS API, is there something wrong with
it?
--
Miroslav Lichvar
next prev parent reply other threads:[~2009-06-23 13:16 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-06-15 14:06 [GIT pull] ntp updates for 2.6.31 Thomas Gleixner
2009-06-15 20:16 ` john stultz
2009-06-15 23:41 ` john stultz
2009-06-16 9:06 ` Ingo Molnar
2009-06-16 11:29 ` Thomas Gleixner
2009-06-16 12:52 ` Miroslav Lichvar
2009-06-17 15:38 ` John Stultz
2009-06-17 16:51 ` Ingo Molnar
2009-06-17 17:23 ` Miroslav Lichvar
2009-06-17 17:26 ` Ingo Molnar
2009-06-17 17:55 ` John Stultz
2009-06-18 12:13 ` Miroslav Lichvar
2009-06-23 9:57 ` Ingo Molnar
2009-06-23 13:16 ` Miroslav Lichvar [this message]
2009-06-23 13:36 ` Ingo Molnar
2009-06-23 14:33 ` Miroslav Lichvar
2009-06-23 19:18 ` Ingo Molnar
2009-06-23 19:49 ` Miroslav Lichvar
2009-06-23 21:41 ` john stultz
2009-06-24 9:29 ` Alan Cox
2009-06-24 13:39 ` Martin Schwidefsky
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20090623131628.GA11827@localhost \
--to=mlichvar@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=johnstul@us.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox