Re: [PATCH] x86, tsc: Fix tsc ratio calibration to avoid broken mdelay

From: Thomas Gleixner
Date: Fri May 06 2016 - 05:49:25 EST


On Fri, 6 May 2016, yu.c.chen@xxxxxxxxx wrote:
> From: Chen Yu <yu.c.chen@xxxxxxxxx>
>
> Currently we fetch the tsc radio by:
> ratio = (lo >> 8) & 0x1f;
> thus get bit8~bit12 of the MSR_PLATFORM_INFO, however according
> to Intel 64 and IA-32 Architectures Software Developer Manual 35.5,
> the ratio bit should be bit8~bit15, otherwise we might get incorrect
> tsc ratio and cause system hang later(mdelay corrupted).

The resulting issue is that both TSC frequency, which is used for udelay, and
the lapic timer frequency are wrong. mdelay is just the visible damage caused
by that.

Thanks,

tglx