On Thu, October 18, 2007 12:32, Chuck wrote:
> i am looking for the best way to use a garmin gps18lvc. i have it running just
> fine using the gpsd driver however i guess my question is, if i patch the
> kernel for the pps option, would that be any more accurate? or is it a don't
> care situation?
>
> personal preferences aside, are there technical/accuracy reasons why one may
> be better over the other?

In-kernel code doesn't need a context switch to userspace to store the time the
PPS signal was received. I don't think it would make any noticeable difference
as long as gpsd was set to realtime priority.

Other processing (e.g. parsing NMEA message) could be running while the PPS
interrupt came in - that would affect it. However gpsd's code looks ok:

    /* wait for status change on the device's carrier-detect line */
    while (ioctl(session->gpsdata.gps_fd, TIOCMIWAIT, pps_device) == 0) {
    (void)gettimeofday(&tv,NULL);

This part doesn't:

    if (getuid() == 0) {
    (void)nice(-10);        /* for precise timekeeping increase priority */

gpsd never sets realtime priority:
~/gpsd $ grep sched_setscheduler *
~/gpsd $ ls

That's a bug that should be fixed before PPS can be used reliably.

-- 
Simon Arlott
_______________________________________________
timekeepers mailing list
[email protected]
https://fortytwo.ch/mailman/cgi-bin/listinfo/timekeepers

Reply via email to