Re: [LEAPSECS] Introduction of long term scheduling

From: M. Warner Losh <imp_at_BSDIMP.COM>
Date: Sun, 07 Jan 2007 08:29:02 -0700 (MST)

In message: <15D57C2B-14B8-47CE-8E61-696FFCC18AB2_at_NOAO.EDU>
            Rob Seaman <seaman_at_noao.edu> writes:
: > If by "some limp attempt" you mean "returns the correct time" then you
: > are correct.
:
: It's not the correct time under the current standard if the
: timekeeping model doesn't implement leap seconds correctly. I don't
: think this is an impossible expectation, see http://
: www.eecis.udel.edu/~mills/exec.html, starting with the Levine and
: Mills PTTI paper.

It implements exactly what ntpd wants. I asked Judah Levine when
determining what was pedantically correct during the leap second. I
also consulted with the many different resources avaialable to
deterimine what the right thing is. Of course, there are different
explaintions about what the leap second should look like depending on
if you listen to Dr. Levine or Dr Mills. Dr. Mills web site says
'redo the first second of the next day' while Dr. Levine's
leapsecond.dat file says 'repeat the last second of the day.'
Actually, both of them hedge and say 'most systems implement...' or
some variation on that theme.

It is possible to determine when you are in a leap second using ntp
extensions with their model. Just not with POSIX interfaces. The
POSIX interfaces are kludged, while the ntpd ones give you enough info
to know to print :59 or :60, but POSIX time_t is insufficiently
expressive, by itself, to know. But ntp_gettime returns a timespec
for the time, as well as a time_state for the current time status,
which includes TIME_INS and TIME_DEL for psotive and negative leap
second 'warning' for end of the day so you know there will be a leap
today, and TIME_WAIT for the actual positive leap second itself
(there's nothing for a negative leapsecond, obviously).

So I stand by my "returns the correct time" statement.

Warner
Received on Sun Jan 07 2007 - 07:32:20 PST

This archive was generated by hypermail 2.3.0 : Sat Sep 04 2010 - 09:44:55 PDT