Skip to content

Commit e79dbf0

Browse files
committed
Merge tag 'perf-urgent-2023-09-10' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull x86 perf event fix from Ingo Molnar: "Work around a firmware bug in the uncore PMU driver, affecting certain Intel systems" * tag 'perf-urgent-2023-09-10' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: perf/x86/uncore: Correct the number of CHAs on EMR
2 parents 535a265 + 6f7f984 commit e79dbf0

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

arch/x86/events/intel/uncore_snbep.c

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6474,8 +6474,18 @@ void spr_uncore_cpu_init(void)
64746474

64756475
type = uncore_find_type_by_id(uncore_msr_uncores, UNCORE_SPR_CHA);
64766476
if (type) {
6477+
/*
6478+
* The value from the discovery table (stored in the type->num_boxes
6479+
* of UNCORE_SPR_CHA) is incorrect on some SPR variants because of a
6480+
* firmware bug. Using the value from SPR_MSR_UNC_CBO_CONFIG to replace it.
6481+
*/
64776482
rdmsrl(SPR_MSR_UNC_CBO_CONFIG, num_cbo);
6478-
type->num_boxes = num_cbo;
6483+
/*
6484+
* The MSR doesn't work on the EMR XCC, but the firmware bug doesn't impact
6485+
* the EMR XCC. Don't let the value from the MSR replace the existing value.
6486+
*/
6487+
if (num_cbo)
6488+
type->num_boxes = num_cbo;
64796489
}
64806490
spr_uncore_iio_free_running.num_boxes = uncore_type_max_boxes(uncore_msr_uncores, UNCORE_SPR_IIO);
64816491
}

0 commit comments

Comments
 (0)