All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] x86/perf: Fixed kernel panic during boot on Nano processor.
@ 2022-11-03  3:23 silviazhao-oc
  2022-11-03 10:07 ` Borislav Petkov
  0 siblings, 1 reply; 10+ messages in thread
From: silviazhao-oc @ 2022-11-03  3:23 UTC (permalink / raw)
  To: peterz, mingo, acme, mark.rutland, alexander.shishkin, jolsa,
	namhyung, tglx, bp, dave.hansen, x86, hpa, linux-perf-users,
	linux-kernel
  Cc: cobechen, louisqi, silviazhao

Nano processor may not fully support rdpmc instruction, it works well
for reading general pmc counter, but will lead GP(general protection)
when accessing fixed pmc counter. Furthermore, family/mode 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.

[https://bugzilla.kernel.org/show_bug.cgi?id=212389]

Reported-by: Arjan <8vvbbqzo567a@nospam.xutrox.com>
Signed-off-by: silviazhao-oc <silviazhao-oc@zhaoxin.com>
---
 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;
 
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 10+ messages in thread
* [PATCH] x86/perf: Fixed kernel panic during boot on Nano processor.
@ 2021-06-07  1:31 Cody Yao-oc
  2021-06-30  4:38 ` Codyyao-oc
                   ` (2 more replies)
  0 siblings, 3 replies; 10+ messages in thread
From: Cody Yao-oc @ 2021-06-07  1:31 UTC (permalink / raw)
  To: peterz, mingo, acme, mark.rutland, alexander.shishkin, jolsa,
	namhyung, tglx, bp, hpa, x86
  Cc: linux-perf-users, linux-kernel, shyaololo, CodyYao-oc

From: CodyYao-oc <CodyYao-oc@zhaoxin.com>

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.

[https://bugzilla.kernel.org/show_bug.cgi?id=212389]

Reported-by: Arjan <8vvbbqzo567a@nospam.xutrox.com>
Signed-off-by: CodyYao-oc <CodyYao-oc@zhaoxin.com>
---
 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;
 
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2022-11-03 10:07 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-11-03  3:23 [PATCH] x86/perf: Fixed kernel panic during boot on Nano processor silviazhao-oc
2022-11-03 10:07 ` Borislav Petkov
  -- strict thread matches above, loose matches on Subject: below --
2021-06-07  1:31 Cody Yao-oc
2021-06-30  4:38 ` Codyyao-oc
2022-10-13 13:49   ` Thorsten Leemhuis
2022-10-13 13:59 ` Peter Zijlstra
2022-10-13 15:07 ` Peter Zijlstra
2022-10-16  9:53   ` Arjan
2022-10-16  9:59     ` Peter Zijlstra
2022-10-16 10:56       ` 8vvbbqzo567a

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.