From: Alexandre Belloni <alexandre.belloni@bootlin.com>
To: John Stultz <john.stultz@linaro.org>
Cc: Joel Daniels <jdaniels@sent.com>,
Thomas Gleixner <tglx@linutronix.de>,
Stephen Boyd <sboyd@kernel.org>,
linux-kernel@vger.kernel.org,
Alessandro Zummo <a.zummo@towertech.it>,
linux-rtc@vger.kernel.org, x86@kernel.org
Subject: Re: Time keeping while suspended in the presence of persistent clock drift
Date: Thu, 16 Dec 2021 00:36:08 +0100 [thread overview]
Message-ID: <Ybp76D62Le2aEc5R@piout.net> (raw)
In-Reply-To: <CALAqxLX795pURb_aJTEAdq80LGiY=br88A+R3TN3HQh+HtS85Q@mail.gmail.com>
On 15/12/2021 15:26:28-0800, John Stultz wrote:
> > Any method of measuring the drift is going to need to persist the
> > drift coefficient to disk so that it can set the system clock
> > correctly on boot. I think it would be best for the kernel to use this
> > same coefficient.
>
> My initial thought was for the rtc class layer to do the estimation
> internally against the system time (assuming it was NTP corrected) to
> try establish a close enough correction factor as the system was up
> and running, but you're right that would be reset on every reboot, and
> with second granular RTCs accurate error calculations will take awhile
> (though polling for the second-edge might work well enough, but would
> be cpu heavy for a background task).
>
> Maybe that's a good enough argument for having an ADJ ioctl added to
> the rtc chardev?
>
Then why not got for the correction software emulation? that would avoid
duplicating interfaces and we'd avoid to use it on RTCs with hardware
support.
> But it also seems to suggest that if chronyd already has all this
> logic in userland, maybe having it calculate and call settimeofday()
> on resume from userland instead of pushing half of that logic into the
> kernel?
My suggestion would leave the correction calculation to userspace which
is definitively where it should stay.
>
> > > Alternatively I'd go very simple and just put the correction factor in
> > > a boot argument.
> >
> > This works for my use case though it won't be useful to a general
> > distro. Would you have one argument being used regardless of where the
> > sleep injection was coming from or would you try to tie it to the
> > persistent clock and/or a specific RTC?
>
> I agree it is an important thing to consider how to generalize this
> for common use (which is why I prefer the approach that works
> *without* any distro integration).
>
> But it's also important to consider if the added complexity is
> *really* needed in the general case.
>
> thanks
> -john
--
Alexandre Belloni, co-owner and COO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
next prev parent reply other threads:[~2021-12-15 23:36 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-12-09 17:55 Time keeping while suspended in the presence of persistent clock drift Joel Daniels
2021-12-09 18:06 ` Joel Daniels
2021-12-11 13:36 ` Thomas Gleixner
2021-12-13 13:39 ` Joel Daniels
2021-12-14 13:57 ` Thomas Gleixner
2021-12-14 17:43 ` Joel Daniels
2021-12-15 21:06 ` John Stultz
2021-12-15 21:32 ` Alexandre Belloni
2021-12-15 22:02 ` John Stultz
2021-12-15 22:33 ` Thomas Gleixner
2021-12-15 23:10 ` John Stultz
2021-12-15 22:42 ` Joel Daniels
2021-12-15 23:26 ` John Stultz
2021-12-15 23:36 ` Alexandre Belloni [this message]
2021-12-16 0:09 ` Joel Daniels
2021-12-15 23:28 ` Alexandre Belloni
2021-12-15 21:42 ` Alexandre Belloni
2021-12-15 22:05 ` Joel Daniels
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=Ybp76D62Le2aEc5R@piout.net \
--to=alexandre.belloni@bootlin.com \
--cc=a.zummo@towertech.it \
--cc=jdaniels@sent.com \
--cc=john.stultz@linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-rtc@vger.kernel.org \
--cc=sboyd@kernel.org \
--cc=tglx@linutronix.de \
--cc=x86@kernel.org \
/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.