On Thu, Jun 05, 2003 at 10:48:52AM +0200, Ralf Baechle wrote:
> On Thu, Jun 05, 2003 at 09:09:05AM +0100, Dominic Sweetman wrote:
> > A naive network synchronisation protocol - analogous to your first
> > proposal - would leave clocks differing by a network round-trip time
> > or so: but NTP does a lot better. So in principle you should be able
> > to scale NTP to create a clock synchronised within some fraction of
> > the time taken by a CPU-to-CPU communication... but compressing the
> > essence of the NTP protocol into something which runs fast enough
> > might be interesting!
> > My 5-minutes-over-breakfast feeling is that you should be able to
> > figure out a way to get time right enough; try reading up how NTP
> > works and see whether it can be made to work?
> Yes, already been thinking about that. The essence of NTP is a software
> implementation of a phase locked loop. The full NTP protocol is way to
> heavy of course but the subset we're talking about would be rather
> lightweight. I'd expect the phase noise to be in the low ppb range,
> little problems with unlocking. And it'll be usable for arbitrary
> combinations of clock frequencies. So an approach to try.
OK, I think you all convinced me that it is probably not a good
idea to do the synchronized CPU count registers, at least not until
we take a look of some alternatives.
> Enjoy your breakfast :-)
What are you eating? I probably should have that when I was thinking
about this RFC. :)
In response to some other replies:
1) yes, it is always possible to use some external system-wide
timer source, if available, to solve this problem. However, that could
get tricky too, and I wanted to do something generic which is hopefully
applicable to more systems.
2) at least from my perspective, I see increasing demand for high
resolution timers that has monotonicity in both kernel space and user space.