[LinuxPPS] rt?
Hal V. Engel
hvengel at astound.net
Wed Mar 25 19:05:07 CET 2009
I have been running with an rt kernel now for about a day and a half and I
have learned some things about how this affects time keeping.
When the machine is idle I don't notice any significant differences. Jitter
may be a little lower (IE. it is almost always 0.001 with the rt kernel but
was almost always 0.002 or 0.003 with a normal kernel) but typical offsets,
rootdispersion, noise and stability values are very similar or at best only
slightly better. So as Bernhard predicted with no load on the system there is
not a significant difference when using the rt kernel. So for a lightly
loaded machine like a network time server appliance with only a few clients
there may not be any reason to use an rt kernel but it may still be worth
while for someone to do a more extensive tests of a system like this.
I tested loading up the machine by running a long multi-threaded build (IE.
make -j3 on a dual core machine). With a normal kernel the time offset would
drift when the machine was loaded and would increase to perhaps 0.0050
(absolute) in a fairly short time (about 15 minutes) and would continue
increasing over longer high load periods at times being > 0.100 (absolute).
With the rt kernel this tendency is almost eliminated and the offsets under
load were about the same as an unload machine! Although it did drift some
after the machine was idled with the offset going from 0.005 to -0.020 but it
quickly recovered to -0.008 about 5 minutes after being idled. At about an
hour into the load test my offset was 0.006278 and rootdispersion, jitter,
noise and stability values have all stayed very close to their respective
values when the machine is idle. All of these values would have increased
significantly on a loaded non-rt kernel system. So this clearly helps time
keeping when the machine is loaded or under variable loads if things are
correctly setup.
It appears that when using a non-rt kernel that there is a significant amount
of variation in the latency of the PPS interrupt handler when the machine is
under varying loads. Using the rt kernel with the serial device running at
high priority seems to improve the consistency of the PPS interrupt handler
and this does result in a very noticeable improvement in the consistency of
the time keeping on a machine with a varying load. Frankly I am very
surprised that I saw this much improvement. I will definitely continue to
run an rt kernel on my workstation and I think it is worthwhile for others to
test this type of setup although it may only be of benefit under some
circumstances.
Hal
More information about the LinuxPPS
mailing list