lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20090623133625.GA3026@elte.hu>
Date:	Tue, 23 Jun 2009 15:36:25 +0200
From:	Ingo Molnar <mingo@...e.hu>
To:	Miroslav Lichvar <mlichvar@...hat.com>
Cc:	John Stultz <johnstul@...ibm.com>,
	Thomas Gleixner <tglx@...utronix.de>,
	Linus Torvalds <torvalds@...ux-foundation.org>,
	Andrew Morton <akpm@...ux-foundation.org>,
	LKML <linux-kernel@...r.kernel.org>
Subject: Re: [GIT pull] ntp updates for 2.6.31


* Miroslav Lichvar <mlichvar@...hat.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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ