From: John Stultz <john.stultz@linaro.org>
To: Richard Cochran <richardcochran@gmail.com>
Cc: linux-kernel@vger.kernel.org, Thomas Gleixner <tglx@linutronix.de>
Subject: Re: [PATCH RFC V2 3/6] time: keep track of the pending utc/tai threshold
Date: Tue, 22 May 2012 11:06:09 -0700 [thread overview]
Message-ID: <4FBBD591.1000103@linaro.org> (raw)
In-Reply-To: <20120522173953.GA4177@netboy.at.omicron.at>
On 05/22/2012 10:39 AM, Richard Cochran wrote:
> On Mon, May 21, 2012 at 09:08:15PM +0200, Richard Cochran wrote:
>> On Mon, May 21, 2012 at 11:09:51AM -0700, John Stultz wrote:
>>> On 05/18/2012 07:09 AM, Richard Cochran wrote:
>>>> + /* Tracks where we stand with regard to leap the second epoch. */
>>>> + enum {
>>>> + LEAP_IDLE,
>>>> + LEAP_INS_PENDING,
>>>> + LEAP_INS_DONE,
>>>> + LEAP_DEL_PENDING,
>>>> + LEAP_DEL_DONE,
>>>> + } leap_state;
> ...
>
>> I don't think I am explaining this very well. I will try again to make
>> it clear using a table or something later on.
> The following table illustrates what happens around a (fictitious)
> leap second. Imagine a new epoch will occur at UTC time value 10 and
> the new TAI - UTC offset will be 2 seconds. The columns of the table
> show the values of the relevant time variables.
>
> U: UTC time
> CODE: NTP time code
> T: TAI - UTC offset
> P: pending (explained below)
>
> U CODE T P
> --------------------
> 1 INS 1 1 leap second sheduled
> --------------------
> 2 INS 1 1
> --------------------
> ...
> --------------------
> 8 INS 1 1
> --------------------
> 9 INS 1 1
> --------------------
> | 10 OOP 1 1 leap second, 1st tick
> |~~~~~~~~~~~~~~~~~~~
> | 9 2 0 leap second, 2nd and subsequent ticks
> --------------------
> 10 WAIT 2 0 new epoch
> --------------------
> 11 WAIT 2 0
Not sure I'm still following.
It seems currently we have:
U CODE T
----------------
9 INS 1
----------------
10 INS 1 pre tick, post leap second edge (this is the technically incorrect interval)
~~~~~~~~~~~~~~~~
9 OOP 2 post tick, post leap second edge
----------------
10 WAIT 2 new epoch
If you're trying to correct the pre-tick, post leap second edge, the above provides all you need.
In the adjtimex code, all you have to do is:
if (unlikely(CODE == INS&& U == 10))
/*note, we're not modifying state here, just returning corrected local values*/
return (U-1, OOP, T+1);
return (U,CODE, T);
Since when the tick triggers, we'll move the CODE state appropriately.
Or am I still missing something?
thanks
-john
next prev parent reply other threads:[~2012-05-22 18:06 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-05-18 14:09 [PATCH RFC V2 0/6] Fix leap seconds and add tai clock Richard Cochran
2012-05-18 14:09 ` [PATCH RFC V2 1/6] time: remove obsolete declaration Richard Cochran
2012-05-21 23:57 ` John Stultz
2012-05-18 14:09 ` [PATCH RFC V2 2/6] ntp: remove useless parameter Richard Cochran
2012-05-21 23:58 ` John Stultz
2012-05-18 14:09 ` [PATCH RFC V2 3/6] time: keep track of the pending utc/tai threshold Richard Cochran
2012-05-21 18:09 ` John Stultz
2012-05-21 19:08 ` Richard Cochran
2012-05-22 17:39 ` Richard Cochran
2012-05-22 18:06 ` John Stultz [this message]
2012-05-23 8:29 ` Richard Cochran
2012-05-23 16:50 ` John Stultz
2012-05-23 19:17 ` Richard Cochran
2012-05-23 20:18 ` John Stultz
2012-05-24 6:43 ` Richard Cochran
2012-05-24 6:57 ` Richard Cochran
2012-05-26 15:07 ` Richard Cochran
2012-05-30 1:46 ` John Stultz
2012-05-30 1:49 ` John Stultz
2012-05-30 5:11 ` Richard Cochran
2012-05-30 5:56 ` John Stultz
2012-05-30 6:19 ` Richard Cochran
2012-05-30 6:23 ` John Stultz
2012-05-30 7:27 ` Richard Cochran
2012-05-23 19:42 ` Richard Cochran
2012-05-21 18:21 ` John Stultz
2012-05-21 19:13 ` Richard Cochran
2012-05-18 14:09 ` [PATCH RFC V2 4/6] time: introduce leap second functional interface Richard Cochran
2012-05-21 18:01 ` John Stultz
2012-05-21 19:18 ` Richard Cochran
2012-05-21 20:24 ` John Stultz
2012-05-22 4:25 ` Richard Cochran
2012-05-22 15:10 ` John Stultz
2012-05-18 14:09 ` [PATCH RFC V2 5/6] time: move leap second management into time keeping core Richard Cochran
2012-05-21 18:18 ` John Stultz
2012-05-21 19:24 ` Richard Cochran
2012-05-18 14:09 ` [PATCH RFC V2 6/6] time: Add CLOCK_TAI clockid Richard Cochran
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4FBBD591.1000103@linaro.org \
--to=john.stultz@linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=richardcochran@gmail.com \
--cc=tglx@linutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.