[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