From: Ingo Molnar <mingo@elte.hu>
To: Miroslav Lichvar <mlichvar@redhat.com>
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:36:25 +0200 [thread overview]
Message-ID: <20090623133625.GA3026@elte.hu> (raw)
In-Reply-To: <20090623131628.GA11827@localhost>
* Miroslav Lichvar <mlichvar@redhat.com> wrote:
> 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.
I'd also expect this to be quite similar to most everyday Linux
uses.
> 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.
The thing is, an idle machine in a room with stable temperature is
in a good position anyway to have stable time, right? We should
rather care about the common-case of temperature variations,
reboots, etc.
That is where NTP _helps the most_ - as the physical environment is
very entropy laden to begin with.
> 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.
That's good. Could this be integrated into the kernel, for even
better results?
> > 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?
The PPS patches i've seen just export IRQ timestamps to user-space.
That is not very robust in my opinion when it comes to do time
approximations - to get quick, low-latency action and precise
measurements it's best to keep the critical path as short as
possible, and within a single source code repository: i.e. within
the kernel.
There's little policy really, other than setting some general
parameters. NTPd can still provide the raw _network time_
timestamps, as that is probably best fetched by user-space and fed
to the kernel.
Ingo
next prev parent reply other threads:[~2009-06-23 13:37 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
2009-06-23 13:36 ` Ingo Molnar [this message]
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=20090623133625.GA3026@elte.hu \
--to=mingo@elte.hu \
--cc=akpm@linux-foundation.org \
--cc=johnstul@us.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mlichvar@redhat.com \
--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