[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <CALjTZvaJB7jrRFWOH2a9Ua-+-S_8Xwyu+W+FtBp-YdG-UkikJw@mail.gmail.com>
Date: Tue, 28 Apr 2020 08:27:06 +0100
From: Rui Salvaterra <rsalvaterra@...il.com>
To: Giovanni Gherdovich <ggherdovich@...e.cz>
Cc: x86@...nel.org, linux-kernel@...r.kernel.org
Subject: Re: [BISECTED] bug/regression, x86-64: completely unbootable machine
On Sat, 25 Apr 2020 at 17:01, Giovanni Gherdovich <ggherdovich@...e.cz> wrote:
>
> There is an easy way to tell (besides compiling with those patches on top and
> check if it works): run the command "turbostat --interval 1 sleep 0", the
> output should tell you the content of the register MSR_TURBO_RATIO_LIMIT.
>
> If bits 31:24 are zero, you see the bug (the code divides by that value),
> otherwise you don't. Some 2 cores / 4 threads CPU have a non-zero value there
> (even if it doesn't mean much), some others have zero instead.
>
> The Intel Software Developer Manual (SDM) says the register content is like
> this:
>
> Bit Fields Bit Description
> 7:0 Maximum turbo ratio limit of 1 core active.
> 15:8 Maximum turbo ratio limit of 2 core active.
> 23:16 Maximum turbo ratio limit of 3 core active.
> 31:24 Maximum turbo ratio limit of 4 core active.
> 39:32 Maximum turbo ratio limit of 5 core active.
> 47:40 Maximum turbo ratio limit of 6 core active.
> 55:48 Maximum turbo ratio limit of 7 core active.
> 63:56 Maximum turbo ratio limit of 8 core active.
>
> As I wrote above, some 2c/4t CPUs will say (correctly) their 4 cores turbo
> frequency is zero, such as this Intel Core i5-430M (Arrandale) where I've seen
> turbostat saying:
>
> cpu1: MSR_TURBO_RATIO_LIMIT: 0x00001313
> 19 * 133.3 = 2533.3 MHz max turbo 2 active cores
> 19 * 133.3 = 2533.3 MHz max turbo 1 active cores
>
> On the contrary, my laptop has an Intel Core i5-5300U (Broadwell, also
> 2 cores / 4 threads) and it has:
>
> cpu3: MSR_TURBO_RATIO_LIMIT: 0x1b1b1b1b1b1d
> 27 * 100.0 = 2700.0 MHz max turbo 6 active cores
> 27 * 100.0 = 2700.0 MHz max turbo 5 active cores
> 27 * 100.0 = 2700.0 MHz max turbo 4 active cores
> 27 * 100.0 = 2700.0 MHz max turbo 3 active cores
> 27 * 100.0 = 2700.0 MHz max turbo 2 active cores
> 29 * 100.0 = 2900.0 MHz max turbo 1 active cores
>
> You can see above that the 4 cores turbo freq is declared as 2.7GHz even if
> it's nonsense because there aren't 4 cores. In any case, this cpu wouldn't
> trigger the bug, just as your skylake.
>
>
> Thanks,
> Giovanni
Hi again, Giovanni,
Thanks for the detailed and insightful explanation and sorry for not
replying earlier. This was indeed the bug I was hitting, as my
Arrandale laptop is now booting 5.7-rc3 just fine.
Best regards,
Rui
Powered by blists - more mailing lists