Re: [PATCH] x86/perf: Fixed kernel panic during boot on Nano processor.
From: Thorsten Leemhuis
Date: Thu Oct 13 2022 - 09:54:59 EST
Hi perf maintainers and Codyyao-oc! What happened to below patch, which
was posted many moons ago? It wasn't merged afaics. Did it fall through
the cracks or is there something wrong with it?
I'm asking because a user who reported this regression asked what's up:
https://bugzilla.kernel.org/show_bug.cgi?id=212389
On 30.06.21 06:38, Codyyao-oc wrote:
>
> Thank you for taking your precious time to read this letter, I am very
> graterful.
>
> Last month, I fixed the bug that boot failed on Nano processor which
> introduced by
>
> "Fixes: 3a4ac121c2ca ("x86/perf: Add hardware performance events support
> for Zhaoxin CPU.")"
Just BTW: You want to add that tag to your patch description.
> with Arjan's help and submitted this patch. But I haven't got back.
> Greatly appreciate if you could kindly
>
> check it and reply at your convenience.
>
> Many Thanks!
>
> Cody
>
> On 2021/6/7 上午9:31, Cody Yao-oc wrote:
>> From: CodyYao-oc <CodyYao-oc@xxxxxxxxxxx>
>>
>> Nano processor may not fully support rdpmc instruction, it works well
>> for reading general pmc counter, but will lead to GP(general protection)
>> when accessing fixed pmc counter. Futhermore, family/model information
>> is same between Nano processor and ZX-C processor, it leads to zhaoxin
>> pmu driver is wrongly loaded for Nano processor, which resulting boot
>> kernal fail.
>>
>> To solve this problem, stepping information will be checked to
>> distinguish
>> between Nano processor and ZX-C processor.
And this...
>> [https://bugzilla.kernel.org/show_bug.cgi?id=212389]
...should look like this:
Link: https://bugzilla.kernel.org/show_bug.cgi?id=212389
Ohh, and you might want to add this to ensure backporting:
Cc: <stable@xxxxxxxxxxxxxxx> # 5.10.x
Guess adding those and submitting it again might be wise and help to
finally get this regression resolved.
Ciao, Thorsten
>> Reported-by: Arjan <8vvbbqzo567a@xxxxxxxxxxxxxxxxx>
>> Signed-off-by: CodyYao-oc <CodyYao-oc@xxxxxxxxxxx>
>> ---
>> arch/x86/events/zhaoxin/core.c | 3 ++-
>> 1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/arch/x86/events/zhaoxin/core.c
>> b/arch/x86/events/zhaoxin/core.c
>> index 949d845c922b..cef1de251613 100644
>> --- a/arch/x86/events/zhaoxin/core.c
>> +++ b/arch/x86/events/zhaoxin/core.c
>> @@ -541,7 +541,8 @@ __init int zhaoxin_pmu_init(void)
>> switch (boot_cpu_data.x86) {
>> case 0x06:
>> - if (boot_cpu_data.x86_model == 0x0f ||
>> boot_cpu_data.x86_model == 0x19) {
>> + if ((boot_cpu_data.x86_model == 0x0f &&
>> boot_cpu_data.x86_stepping >= 0x0e) ||
>> + boot_cpu_data.x86_model == 0x19) {
>> x86_pmu.max_period = x86_pmu.cntval_mask >> 1;
>>