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

From: Petr Mladek
Date: Thu Nov 23 2017 - 07:58:31 EST


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
^^^^^^^^
[ 0.032097] KVM setup async PF for cpu 1
[ 0.032766] kvm-stealtime: cpu 1, msr 13b00dc40
[ 0.036502] #2
[ 0.004000] kvm-clock: cpu 2, msr 1:3ff51081, secondary cpu clock
^^^^^^^^
[ 0.040062] KVM setup async PF for cpu 2
[ 0.040576] kvm-stealtime: cpu 2, msr 13b20dc40
[ 0.041304] #3
[ 0.004000] kvm-clock: cpu 3, msr 1:3ff510c1, secondary cpu clock
^^^^^^^^
[ 0.048051] KVM setup async PF for cpu 3
[ 0.048554] kvm-stealtime: cpu 3, msr 13b40dc40


To be honest, I do not feel experienced enough to decide which
solution is acceptable. I would say that only few people care
about timestamps during boot. On the other hand, some tools
might get confused by non-monotonic timestamps. Therefore
I would try to avoid this patch.

But I might be completely wrong. After all, this feature is
done because people wanted to track the time more precisely.
Some of them wanted to have the most precise time even during
suspend and resume. On the other hand, it might be enough
if we allow to get the information from the other
stored timestamps.

Best Regards,
Petr