From: tglx at linutronix.de (Thomas Gleixner) Subject: Setting monotonic time? Date: Tue, 2 Oct 2018 22:06:28 +0200 (CEST) [thread overview] Message-ID: <alpine.DEB.2.21.1810022205080.1435@nanos.tec.linutronix.de> (raw) In-Reply-To: <CAK8P3a2zTqrCGURE3XVpn3_w6C4R5O+cq8TdtbyKCMGyRk9_jw@mail.gmail.com> On Tue, 2 Oct 2018, Arnd Bergmann wrote: > On Mon, Oct 1, 2018 at 8:53 PM Thomas Gleixner <tglx at linutronix.de> wrote: > > > > On Mon, 1 Oct 2018, Eric W. Biederman wrote: > > > In the context of process migration there is a simpler subproblem that I > > > think it is worth exploring if we can do something about. > > > > > > For a cluster of machines all running with synchronized > > > clocks. CLOCK_REALTIME matches. CLOCK_MONOTNIC does not match between > > > machines. Not having a matching CLOCK_MONOTONIC prevents successful > > > process migration between nodes in that cluster. > > > > > > Would it be possible to allow setting CLOCK_MONOTONIC at the very > > > beginning of time? So that all of the nodes in a cluster can be in > > > sync? > > > > > > No change in skew just in offset for CLOCK_MONOTONIC. > > > > > > There are also dragons involved in coordinating things so that > > > CLOCK_MONOTONIC gets set before CLOCK_MONOTONIC gets used. So I don't > > > know if allowing CLOCK_MONOTONIC to be set would be practical but it > > > seems work exploring all on it's own. > > > > It's used very early on in the kernel, so that would be a major surprise > > for many things including user space which has expectations on clock > > monotonic. > > > > It would be reasonably easy to add CLOCK_MONONOTIC_SYNC which can be set in > > the way you described and then in name spaces make it possible to magically > > map CLOCK_MONOTONIC to CLOCK_MONOTONIC_SYNC. > > > > It still wouldn't allow to have different NTP/PTP time domains, but might > > be a good start to address the main migration headaches. > > If we make CLOCK_MONOTONIC settable this way in a namespace, > do you think that should include device drivers that report timestamps > in CLOCK_MONOTONIC base, or only the timekeeping clock and timer > interfaces? Uurgh. That gets messy very fast. > Examples for drivers that can report timestamps are input, sound, v4l, > and drm. I think most of these can report stamps in either monotonic > or realtime base, while socket timestamps notably are always in > realtime. > > We can probably get away with not setting the timebase for those > device drivers as long as the checkpoint/restart and migration features > are not expected to restore the state of an open character device > in that way. I don't know if that is a reasonable assumption to make > for the examples I listed. No idea. I'm not a container migration wizard. Thanks, tglx
WARNING: multiple messages have this Message-ID (diff)
From: tglx@linutronix.de (Thomas Gleixner) Subject: Setting monotonic time? Date: Tue, 2 Oct 2018 22:06:28 +0200 (CEST) [thread overview] Message-ID: <alpine.DEB.2.21.1810022205080.1435@nanos.tec.linutronix.de> (raw) Message-ID: <20181002200628.ggN7rdria7H1ZV6K2lp_Ep6AwipSV66uD3K1k2vL2CM@z> (raw) In-Reply-To: <CAK8P3a2zTqrCGURE3XVpn3_w6C4R5O+cq8TdtbyKCMGyRk9_jw@mail.gmail.com> On Tue, 2 Oct 2018, Arnd Bergmann wrote: > On Mon, Oct 1, 2018@8:53 PM Thomas Gleixner <tglx@linutronix.de> wrote: > > > > On Mon, 1 Oct 2018, Eric W. Biederman wrote: > > > In the context of process migration there is a simpler subproblem that I > > > think it is worth exploring if we can do something about. > > > > > > For a cluster of machines all running with synchronized > > > clocks. CLOCK_REALTIME matches. CLOCK_MONOTNIC does not match between > > > machines. Not having a matching CLOCK_MONOTONIC prevents successful > > > process migration between nodes in that cluster. > > > > > > Would it be possible to allow setting CLOCK_MONOTONIC at the very > > > beginning of time? So that all of the nodes in a cluster can be in > > > sync? > > > > > > No change in skew just in offset for CLOCK_MONOTONIC. > > > > > > There are also dragons involved in coordinating things so that > > > CLOCK_MONOTONIC gets set before CLOCK_MONOTONIC gets used. So I don't > > > know if allowing CLOCK_MONOTONIC to be set would be practical but it > > > seems work exploring all on it's own. > > > > It's used very early on in the kernel, so that would be a major surprise > > for many things including user space which has expectations on clock > > monotonic. > > > > It would be reasonably easy to add CLOCK_MONONOTIC_SYNC which can be set in > > the way you described and then in name spaces make it possible to magically > > map CLOCK_MONOTONIC to CLOCK_MONOTONIC_SYNC. > > > > It still wouldn't allow to have different NTP/PTP time domains, but might > > be a good start to address the main migration headaches. > > If we make CLOCK_MONOTONIC settable this way in a namespace, > do you think that should include device drivers that report timestamps > in CLOCK_MONOTONIC base, or only the timekeeping clock and timer > interfaces? Uurgh. That gets messy very fast. > Examples for drivers that can report timestamps are input, sound, v4l, > and drm. I think most of these can report stamps in either monotonic > or realtime base, while socket timestamps notably are always in > realtime. > > We can probably get away with not setting the timebase for those > device drivers as long as the checkpoint/restart and migration features > are not expected to restore the state of an open character device > in that way. I don't know if that is a reasonable assumption to make > for the examples I listed. No idea. I'm not a container migration wizard. Thanks, tglx
next prev parent reply other threads:[~2018-10-02 20:06 UTC|newest] Thread overview: 78+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-09-19 20:50 [RFC 00/20] ns: Introduce Time Namespace dima 2018-09-19 20:50 ` Dmitry Safonov 2018-09-19 20:50 ` [RFC 16/20] selftest: Add Time Namespace test for supported clocks dima 2018-09-19 20:50 ` Dmitry Safonov 2018-09-24 21:36 ` shuah 2018-09-24 21:36 ` Shuah Khan 2018-09-19 20:50 ` [RFC 17/20] selftest/timens: Add test for timerfd dima 2018-09-19 20:50 ` Dmitry Safonov 2018-09-19 20:50 ` [RFC 18/20] selftest/timens: Add test for clock_nanosleep dima 2018-09-19 20:50 ` Dmitry Safonov 2018-09-19 20:50 ` [RFC 19/20] timens/selftest: Add procfs selftest dima 2018-09-19 20:50 ` Dmitry Safonov 2018-09-19 20:50 ` [RFC 20/20] timens/selftest: Add timer offsets test dima 2018-09-19 20:50 ` Dmitry Safonov 2018-09-21 12:27 ` [RFC 00/20] ns: Introduce Time Namespace ebiederm 2018-09-21 12:27 ` Eric W. Biederman 2018-09-24 20:51 ` avagin 2018-09-24 20:51 ` Andrey Vagin 2018-09-24 22:02 ` ebiederm 2018-09-24 22:02 ` Eric W. Biederman 2018-09-25 1:42 ` avagin 2018-09-25 1:42 ` Andrey Vagin 2018-09-26 17:36 ` ebiederm 2018-09-26 17:36 ` Eric W. Biederman 2018-09-26 17:59 ` 0x7f454c46 2018-09-26 17:59 ` Dmitry Safonov 2018-09-27 21:30 ` tglx 2018-09-27 21:30 ` Thomas Gleixner 2018-09-27 21:41 ` tglx 2018-09-27 21:41 ` Thomas Gleixner 2018-10-01 23:20 ` avagin 2018-10-01 23:20 ` Andrey Vagin 2018-10-02 6:15 ` tglx 2018-10-02 6:15 ` Thomas Gleixner 2018-10-02 21:05 ` 0x7f454c46 2018-10-02 21:05 ` Dmitry Safonov 2018-10-02 21:26 ` tglx 2018-10-02 21:26 ` Thomas Gleixner 2018-09-28 17:03 ` ebiederm 2018-09-28 17:03 ` Eric W. Biederman 2018-09-28 19:32 ` tglx 2018-09-28 19:32 ` Thomas Gleixner 2018-10-01 9:05 ` ebiederm 2018-10-01 9:05 ` Eric W. Biederman 2018-10-01 9:15 ` Setting monotonic time? ebiederm 2018-10-01 9:15 ` Eric W. Biederman 2018-10-01 18:52 ` tglx 2018-10-01 18:52 ` Thomas Gleixner 2018-10-02 20:00 ` arnd 2018-10-02 20:00 ` Arnd Bergmann 2018-10-02 20:06 ` tglx [this message] 2018-10-02 20:06 ` Thomas Gleixner 2018-10-03 4:50 ` ebiederm 2018-10-03 4:50 ` Eric W. Biederman 2018-10-03 5:25 ` tglx 2018-10-03 5:25 ` Thomas Gleixner 2018-10-03 6:14 ` ebiederm 2018-10-03 6:14 ` Eric W. Biederman 2018-10-03 7:02 ` arnd 2018-10-03 7:02 ` Arnd Bergmann 2018-10-03 6:14 ` tglx 2018-10-03 6:14 ` Thomas Gleixner 2018-10-01 20:51 ` avagin 2018-10-01 20:51 ` Andrey Vagin 2018-10-02 6:16 ` tglx 2018-10-02 6:16 ` Thomas Gleixner 2018-10-21 1:41 ` [RFC 00/20] ns: Introduce Time Namespace avagin 2018-10-21 1:41 ` Andrei Vagin 2018-10-21 3:54 ` avagin 2018-10-21 3:54 ` Andrei Vagin 2018-10-29 20:33 ` tglx 2018-10-29 20:33 ` Thomas Gleixner 2018-10-29 21:21 ` ebiederm 2018-10-29 21:21 ` Eric W. Biederman 2018-10-29 21:36 ` tglx 2018-10-29 21:36 ` Thomas Gleixner 2018-10-31 16:26 ` avagin 2018-10-31 16:26 ` Andrei Vagin
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=alpine.DEB.2.21.1810022205080.1435@nanos.tec.linutronix.de \ --to=linux-kselftest@vger.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: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).