Subject: Re: CVS commit: src/sys/kern
To: Perry E. Metzger <perry@piermont.com>
From: Garrett D'Amore <garrett_damore@tadpole.com>
List: source-changes
Date: 09/12/2006 07:46:05
Perry E. Metzger wrote:
> Izumi Tsutsui <tsutsui@ceres.dti.ne.jp> writes:
>
>>>> Anyway, it's better to note what "62" means in the source.
>>>>
>>> I was giggling about this, and several other people also noted, a
>>> value of 61 already means there are 2 leap-seconds. Are we going to
>>> allow 3?
>>>
>> Heh, "dt.dt_sec >= 62" rejects 62, but "dt.dt_sec > 61" is better?
>>
>
> No, the code doesn't mean that. >= 62 means it rejects 62 and
> above. It should reject 61 and above (>= 61), permitting 60.
>
> Perry
>
As indicated, I chose to allow 61 on purpose, because I had believed
that to be technically correct. It is possible this is wrong. I'm more
than happy to change it if we are certain that there can never be more
than one leap second. (I wish I knew where I saw the reference to two
leap seconds -- it was years ago.)
My understanding is that if the rotation of the earth sped up quickly
enough during a six month period, then the time keeping authorities have
the option of adding up to 2 leap seconds to quickly correct it, and
that the reason we've never seen it happen before is that observation
has never indicated it was required.
To answer Perry's 0.9 second thing; I think the issue here is that
observation "lags" correction by a certain amount. I.e. if the earth
suddenly slowed a larger margin than usual, it would take ~six months to
issue the correction. Before the correction is issued, the clock can be
more than 0.9 seconds off. (0.9 seconds is the threshold, as I
understand, where a leap second has to be issued.)
It would be good to get the opinion of a timekeeping expert (maybe David
Mills) if we are serious about getting this _right_.
--
Garrett D'Amore, Principal Software Engineer
Tadpole Computer / Computing Technologies Division,
General Dynamics C4 Systems
http://www.tadpolecomputer.com/
Phone: 951 325-2134 Fax: 951 325-2191