Re: [RFC 2/2] x86, tsc: Enable clock for ealry printk timestamp

From: Peter Zijlstra
Date: Thu May 31 2018 - 11:52:25 EST


On Thu, May 31, 2018 at 03:55:42PM +0200, Petr Mladek wrote:
> I wonder if we could get some cleaner integration into the timer and
> printk code.

Yes, these patches are particularly horrific..

There were some earlier patches by Pavel Tatashin, which attempted do
get things running earlier.

http://lkml.kernel.org/r/20180209211143.16215-1-pasha.tatashin@xxxxxxxxxx

I'm not entirely happy with that, but I never did get around to
reviewing that last version :-( In particuarly, now that you made me
look, I dislike his patch 6 almost as much as these patches.

The idea was to get regular sched_clock() running earlier, not to botch
some early_sched_clock() into it.

Basically run calibrate_tsc() earlier (like _waaay_ earlier, it doesn't
rely on anything other than CPUID) and if you have a recent part (with
exception of SKX) you'll get a usable tsc rate (and TSC_RELIABLE) and
things will work.

If you have a dodgy part (sorry SKX), you'll just have to live with
sched_clock starting late(r).

Do not cobble things on the side, try and get the normal things running
earlier.