Re: [PATCH] Revert "x86/tsc: Consolidate init code"

From: Ville Syrjälä
Date: Tue Sep 11 2018 - 08:16:16 EST


On Mon, Sep 10, 2018 at 06:53:54PM +0200, Thomas Gleixner wrote:
> On Mon, 10 Sep 2018, Ville Syrjälä wrote:
>
> Good: 1718674.70 BogoMIPS (lpj=2863311530)
> Bad: 859455.59 BogoMIPS (lpj=1431852151)
>
> while both kernels agree on the CPU frequency of 996MHz. This pretty much
> smells like the 32bit LPJ conversion bug which got fixed in rc3. Does the
> problem persist with rc3?

Indeed looks to be fixed by commit 17f6bac22493 ("x86/tsc:
Prevent result truncation on 32bit"). I both cherry-picked that
on top of rc2 to make sure it really is that commit, and also
tested plain rc3 to make sure it still works.

And comparing the bogomips between the three relevant commits makes
the bug pretty obvious in hindsight:
Calibrating delay loop (skipped), value calculated using timer frequency.. 1718674.70 BogoMIPS (lpj=2863311530)
Calibrating delay loop (skipped), value calculated using timer frequency.. 859455.59 BogoMIPS (lpj=1431852151)
Calibrating delay loop (skipped), value calculated using timer frequency.. 1994.50 BogoMIPS (lpj=3322410)

I suppose we just got very lucky with older kernels.

--
Ville Syrjälä
Intel