gpsd-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [gpsd-dev] Planning a 3.11 snap release


From: Greg Troxel
Subject: Re: [gpsd-dev] Planning a 3.11 snap release
Date: Sun, 24 Nov 2013 09:29:24 -0500
User-agent: Gnus/5.130006 (Ma Gnus v0.6) Emacs/23.4 (berkeley-unix)

You might call this 3.10.1, to make the point that anyone running 3.10
should upgrade.  Or perhaps if they are actually running 3.10 it's not
that important.


There's something else to address, but unclear if it should touch 3.11.
The OS PPS detection logic is broken.  Specifically:

  sys/timepps.h is not detected on NetBSD, and I'm 99% sure this is
  because the scons test doesn't include sys/time.h first.  I get it
  that you fixed this in gpsd.h-tail, but the scons test is failing.

  pps is forced off if TIOCMIWAIT is not available.
    Checking if sys/ioctl.h supplies TIOCMIWAIT ...no
    Forcing pps=no (TIOCMIWAIT not available)
  This is wrong, because the standards-based approach to pps is RFC2783
  (sys/timepps.h) and that works fine without TIOCMIWAIT (which is for
  user-space pps, on Linux and perhaps OpenBSD).  The fix is to only
  force pps off if no pps mechanisms are available.  The incorrect
  forcing is a regression from earlier versions
           
  I suspect the bug in the pps code that chews CPU time if pps=yes but
  there are no mechanisms available.   With pps being forced off if
  there are no mechanisms, that should be ok.  But an if !defined() and
  #error might be in order.

I think that if the first two things are addressed, gpsd pps support
will likely work on NetBSD.  (I have working pps support via
sys/timepps.h in ntpd with a GR601-W, using my soon-to-be-upstream USB
pps changes.  Real serial pps appears in NetBSD sources in 1998, and was
then spiffed up tracking the drafts of RFC2783 over several years.)

I will get to this eventually (in the CS unbounded time liveness proof
sense :-), but I hope the above may be helpful to anyone els who wants
to address this.

To be concrete about timepps.h, this program compiles on NetBSD 6:
--------------------
#include <sys/time.h>
#include <sys/timepps.h>
--------------------




And finally, I built 3.10 (from git tag) on NetBSD 5 and 6 (i386), and
there are only some apparently-timing-based sporadic regresssion
failures.  I also live-tested with a GR601-W on NetBSD 5 (pps does not
work, but the rest seems ok).

Attachment: pgpxWX1NfOS4J.pgp
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]