From: Miroslav Lichvar <mlichvar@redhat.com>
To: Prarit Bhargava <prarit@redhat.com>
Cc: John Stultz <john.stultz@linaro.org>,
Thomas Gleixner <tglx@linutronix.de>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH] time, ntp: Do not update time_state in middle of leap
Date: Fri, 6 Feb 2015 11:38:15 +0100 [thread overview]
Message-ID: <20150206103815.GB23998@localhost> (raw)
In-Reply-To: <54D36E08.1060400@redhat.com>
On Thu, Feb 05, 2015 at 08:20:08AM -0500, Prarit Bhargava wrote:
> On 02/04/2015 11:30 AM, Miroslav Lichvar wrote:
> > If after that, adjtimex() will return with TIME_ERROR as expected, or
> > not?
>
> It is possible that an adjtimex() will set the time_state here back to TIME_OK
> and return TIME_OK to userspace. Again, and I want to stress this, this is
> extremely unlikely to happen. I only hit this due to a bug in a test program.
> But at the end of the day, it is possible that this happens and we should
> protect against it.
Could it break any applications? I guess PLL is normally disabled only
when a time synchronization process ends. FWIW, the reference
nanokernel implementation has this too.
> >> - if ((time_status & STA_PLL) && !(txc->status & STA_PLL)) {
> >> + if ((time_status & STA_PLL) && !(txc->status & STA_PLL) &&
> >> + (time_state != TIME_OOP)) {
> >> time_state = TIME_OK;
> >> time_status = STA_UNSYNC;
> >> /* restart PPS frequency calibration */
> >
> > Shouldn't be time_status reset and the PPS calibration restarted even
> > when state is TIME_OOP?
>
> No, this should only happen after the leap second is done IMO (which should be
> no more than 2 seconds later).
But that will not happen automatically, the application would have to
enable and disable the PLL again. Interestingly, the "time_status =
STA_UNSYNC" assignment doesn't seem to do anything here, as the
variable is always reset couple lines after that, STA_UNSYNC is not a
readonly flag.
--
Miroslav Lichvar
next prev parent reply other threads:[~2015-02-06 10:37 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-04 12:28 [PATCH] time, ntp: Do not update time_state in middle of leap second Prarit Bhargava
2015-02-04 16:30 ` [PATCH] time, ntp: Do not update time_state in middle of leap Miroslav Lichvar
2015-02-05 13:20 ` Prarit Bhargava
2015-02-06 10:38 ` Miroslav Lichvar [this message]
2015-02-06 10:50 ` Prarit Bhargava
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=20150206103815.GB23998@localhost \
--to=mlichvar@redhat.com \
--cc=john.stultz@linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=prarit@redhat.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.