aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/cpu
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86/kernel/cpu')
-rw-r--r--arch/x86/kernel/cpu/perf_event_intel_lbr.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/arch/x86/kernel/cpu/perf_event_intel_lbr.c b/arch/x86/kernel/cpu/perf_event_intel_lbr.c
index e54a063b2863..07f0ff88e443 100644
--- a/arch/x86/kernel/cpu/perf_event_intel_lbr.c
+++ b/arch/x86/kernel/cpu/perf_event_intel_lbr.c
@@ -315,6 +315,16 @@ void intel_pmu_lbr_init_snb(void)
315/* atom */ 315/* atom */
316void intel_pmu_lbr_init_atom(void) 316void intel_pmu_lbr_init_atom(void)
317{ 317{
318 /*
319 * only models starting at stepping 10 seems
320 * to have an operational LBR which can freeze
321 * on PMU interrupt
322 */
323 if (boot_cpu_data.x86_mask < 10) {
324 pr_cont("LBR disabled due to erratum");
325 return;
326 }
327
318 x86_pmu.lbr_nr = 8; 328 x86_pmu.lbr_nr = 8;
319 x86_pmu.lbr_tos = MSR_LBR_TOS; 329 x86_pmu.lbr_tos = MSR_LBR_TOS;
320 x86_pmu.lbr_from = MSR_LBR_CORE_FROM; 330 x86_pmu.lbr_from = MSR_LBR_CORE_FROM;