Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

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

+11 -1
+11 -1
arch/x86/events/intel/uncore_snbep.c
··· 6474 6474 6475 6475 type = uncore_find_type_by_id(uncore_msr_uncores, UNCORE_SPR_CHA); 6476 6476 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 + */ 6477 6482 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; 6479 6489 } 6480 6490 spr_uncore_iio_free_running.num_boxes = uncore_type_max_boxes(uncore_msr_uncores, UNCORE_SPR_IIO); 6481 6491 }