From: Jason Gunthorpe <jgg@ziepe.ca>
To: Miroslav Lichvar <mlichvar@redhat.com>
Cc: linux-kernel@vger.kernel.org,
Thomas Gleixner <tglx@linutronix.de>,
John Stultz <john.stultz@linaro.org>,
Prarit Bhargava <prarit@redhat.com>
Subject: Re: [PATCH] rtc: adapt allowed RTC update error
Date: Tue, 1 Dec 2020 12:12:24 -0400 [thread overview]
Message-ID: <20201201161224.GF5487@ziepe.ca> (raw)
In-Reply-To: <20201201143835.2054508-1-mlichvar@redhat.com>
On Tue, Dec 01, 2020 at 03:38:35PM +0100, Miroslav Lichvar wrote:
> When the system clock is marked as synchronized via adjtimex(), the
> kernel is expected to copy the system time to the RTC every 11 minutes.
>
> There are reports that it doesn't always work reliably. It seems the
> current requirement for the RTC update to happen within 5 ticks of the
> target time in some cases can consistently fail for hours or even days.
>
> It is better to set the RTC with a larger error than let it drift for
> too long.
>
> Add a static variable to rtc_tv_nsec_ok() to count the checks. With each
> failed check, relax the requirement by one jiffie, and reset the counter
> when it finally succeeds. This should allow the RTC update to happen in
> a minute at most.
>
> Signed-off-by: Miroslav Lichvar <mlichvar@redhat.com>
> Cc: Thomas Gleixner <tglx@linutronix.de>
> Cc: John Stultz <john.stultz@linaro.org>
> Cc: Prarit Bhargava <prarit@redhat.com>
> Cc: Jason Gunthorpe <jgg@ziepe.ca>
> include/linux/rtc.h | 17 +++++++++++++----
> 1 file changed, 13 insertions(+), 4 deletions(-)
>
> diff --git a/include/linux/rtc.h b/include/linux/rtc.h
> index 22d1575e4991..8d105f10ef6a 100644
> +++ b/include/linux/rtc.h
> @@ -218,21 +218,30 @@ static inline bool rtc_tv_nsec_ok(s64 set_offset_nsec,
> struct timespec64 *to_set,
> const struct timespec64 *now)
> {
> - /* Allowed error in tv_nsec, arbitarily set to 5 jiffies in ns. */
> - const unsigned long TIME_SET_NSEC_FUZZ = TICK_NSEC * 5;
> struct timespec64 delay = {.tv_sec = 0,
> .tv_nsec = set_offset_nsec};
> + unsigned long time_set_nsec_fuzz;
> + static unsigned int attempt;
Adding a static value instide a static inline should not be done
I'm not sure using a static like this is the best idea anyhow, if you
want something like this it should be per-rtc, not global
Did you look at why time has become so in-accurate in your system? 5
jiffies is usually a pretty long time?
Jason
next prev parent reply other threads:[~2020-12-01 16:13 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-12-01 14:38 [PATCH] rtc: adapt allowed RTC update error Miroslav Lichvar
2020-12-01 16:12 ` Jason Gunthorpe [this message]
2020-12-01 17:14 ` Miroslav Lichvar
2020-12-01 17:35 ` Jason Gunthorpe
2020-12-02 10:01 ` [PATCHv2] " Miroslav Lichvar
2020-12-02 13:44 ` [PATCH] " Thomas Gleixner
2020-12-02 15:07 ` Miroslav Lichvar
2020-12-02 15:36 ` Miroslav Lichvar
2020-12-02 18:36 ` Thomas Gleixner
2020-12-02 16:27 ` Jason Gunthorpe
2020-12-02 19:21 ` Thomas Gleixner
2020-12-02 20:54 ` Jason Gunthorpe
2020-12-02 22:08 ` Thomas Gleixner
2020-12-02 23:03 ` Jason Gunthorpe
2020-12-03 1:14 ` Thomas Gleixner
2020-12-03 2:04 ` Jason Gunthorpe
2020-12-03 2:10 ` Alexandre Belloni
2020-12-03 15:39 ` Thomas Gleixner
2020-12-03 16:16 ` Jason Gunthorpe
2020-12-03 21:05 ` Thomas Gleixner
2020-12-03 21:31 ` Thomas Gleixner
2020-12-03 22:36 ` Jason Gunthorpe
2020-12-04 13:02 ` Thomas Gleixner
2020-12-04 14:08 ` Jason Gunthorpe
2020-12-04 14:37 ` Alexandre Belloni
2020-12-04 14:46 ` Jason Gunthorpe
2020-12-04 15:08 ` Alexandre Belloni
2020-12-04 15:57 ` Jason Gunthorpe
2020-12-04 16:35 ` Alexandre Belloni
2020-12-03 22:00 ` Alexandre Belloni
2020-12-04 9:34 ` Thomas Gleixner
2020-12-04 9:51 ` Alexandre Belloni
2020-12-04 10:44 ` Thomas Gleixner
2020-12-03 17:29 ` Alexandre Belloni
2020-12-03 19:52 ` Thomas Gleixner
2020-12-03 15:52 ` Jason Gunthorpe
2020-12-03 16:07 ` Alexandre Belloni
2020-12-03 20:10 ` Jason Gunthorpe
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=20201201161224.GF5487@ziepe.ca \
--to=jgg@ziepe.ca \
--cc=john.stultz@linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mlichvar@redhat.com \
--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.