[LinuxPPS] do we need hardpps?

Udo van den Heuvel udovdh at xs4all.nl
Sat Feb 6 14:27:51 CET 2010


On 2010-02-06 12:10, Alexander Gordeev wrote:
>> How does interrupt driven methods differ from this implementation
>> w.r.t. CPU consumption, accuracy, etc?
> 
> Actually, it's still interrupt driven, but interrupt is generated on
> assert edge transition. You can try to get the timestamp as soon as
> you can (for example, see Rodolfo's patch for low-level timestamps) but
> it is still imprecise. What if the interrupts were disabled by some
> other interrupt handling code? All this stuff leads to interrupt
> handling delays. The bad thing is that you never know how big the error
> is. (Well, actually I'm able to calculate it in my setup because I
> have a much more reliable timestamp for the clear edge transition and
> know the length of the pulse. It usually is 7-15us! There is only one
> way to improve this a little - use IRQF_NODELAY for parport interrupts.
> I'm going to test this too.)

Hmm.
My Garmin GPS18LVC only guarantees the rising edge to be within +/- 1
microsecond of the GPS second start.
Unfortunately, pulse length is set in miliseconds, with 20 ms
increments, starting at 20 ms unto 980 ms.
I was thinking of using the falling edge trick for serial GPS as well.
But this doesn't look so feasible now with this GPS.

>> Since my GPS reception is still spotty, would your patches help the
>> kernel keep the kernel PLL going undisturbed for longer?
>> Or would I need to add a TCXO? (or just improve GPS reception)
> 
> Well, actually after enabling PPS this will no more be the kernel PLL.
> I don't know for sure what would be in your setup and don't even have a
> PPS-capable GPS receiver but it will be very interesting to know!
> Actually I didn't test in very bad conditions. Surely, hardpps() should
> deal with them too.

So maybe I should build 2.6.33 soon with Rodolfo's and your latest
patches to see how well it works?
Does Rodolfo have a 2.6.33-rc6+ patch? (or does the 2.6.32-rc patch
still work in 2.6.33?)


Also:

Do you have any idea why ppsldisc works better/differently than ldattach
when creating the pps device?
Also: there is an issue that sometimes pps stops being recorded by the
kernel when ntpd is started. Can you see why/when that could happen?
Killing ppsldisc and restarting it helps most of the time.
I am sure others here can describe the issue more detailed. (please do!)

Please let us know.



More information about the LinuxPPS mailing list