Re: [RFC patch 7/7] timekeeping: Hack to use fine grained timestamps during boot

From: Thomas Gleixner
Date: Fri Dec 08 2017 - 14:51:52 EST


On Fri, 8 Dec 2017, Petr Mladek wrote:

> On Tue 2017-11-28 19:47:09, Thomas Gleixner wrote:
> > On Tue, 28 Nov 2017, Prarit Bhargava wrote:
> > > On 11/23/2017 07:58 AM, Petr Mladek wrote:
> > > > On Wed 2017-11-15 19:15:38, Thomas Gleixner wrote:
> > > >> For demonstration purposes only.
> > > >>
> > > >> Add a disgusting hack to work around the fact that high resolution clock
> > > >> MONOTONIC accessors are not available during early boot and return stale
> > > >> time stamps accross suspend/resume when the current clocksource is not
> > > >> flagged with CLOCK_SOURCE_SUSPEND_ACCESS_OK.
> > > >>
> > > >> Use local_clock() to provide timestamps in early boot and when the
> > > >> clocksource is not accessible after timekeeping_suspend(). In the
> > > >> suspend/resume case this might cause non monotonic timestamps.
> > > >
> > > > I get the non-monotonic times even during boot:
> > > >
> > > > [ 0.026709] smp: Bringing up secondary CPUs ...
> > > > [ 0.027973] x86: Booting SMP configuration:
> > > > [ 0.028006] .... node #0, CPUs: #1
> > > > [ 0.004000] kvm-clock: cpu 1, msr 1:3ff51041, secondary cpu clock
> > > > ^^^^^^^^
> >
> > Which is interesting as this should happen even w/o those patches.
>
> Good point. I really see this even without those patches.
>
> I was confused because I saw the following with this patchset
> but without this latest patch:
>
> [ 0.016000] smp: Bringing up secondary CPUs ...
> [ 0.016000] x86: Booting SMP configuration:
> [ 0.020000] .... node #0, CPUs: #1
> [ 0.020000] kvm-clock: cpu 1, msr 1:3ff52041, secondary cpu clock
> [ 0.024000] KVM setup async PF for cpu 1
> [ 0.024000] kvm-stealtime: cpu 1, msr 13fc8d940
>
> It is monotonic. The only drawback is that the resolution of the
> monotonic clock is low at this stage.

The kvm-clock printout probably happens before it is completely initialized.

Thanks,

tglx