aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
Diffstat (limited to 'arch')
-rw-r--r--arch/x86/kernel/cpu/perf_event_amd.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/arch/x86/kernel/cpu/perf_event_amd.c b/arch/x86/kernel/cpu/perf_event_amd.c
index 95e7fe1c5f0b..9edc786aef89 100644
--- a/arch/x86/kernel/cpu/perf_event_amd.c
+++ b/arch/x86/kernel/cpu/perf_event_amd.c
@@ -493,6 +493,7 @@ static __initconst const struct x86_pmu amd_pmu = {
493 * 0x023 DE PERF_CTL[2:0] 493 * 0x023 DE PERF_CTL[2:0]
494 * 0x02D LS PERF_CTL[3] 494 * 0x02D LS PERF_CTL[3]
495 * 0x02E LS PERF_CTL[3,0] 495 * 0x02E LS PERF_CTL[3,0]
496 * 0x031 LS PERF_CTL[2:0] (**)
496 * 0x043 CU PERF_CTL[2:0] 497 * 0x043 CU PERF_CTL[2:0]
497 * 0x045 CU PERF_CTL[2:0] 498 * 0x045 CU PERF_CTL[2:0]
498 * 0x046 CU PERF_CTL[2:0] 499 * 0x046 CU PERF_CTL[2:0]
@@ -506,10 +507,12 @@ static __initconst const struct x86_pmu amd_pmu = {
506 * 0x0DD LS PERF_CTL[5:0] 507 * 0x0DD LS PERF_CTL[5:0]
507 * 0x0DE LS PERF_CTL[5:0] 508 * 0x0DE LS PERF_CTL[5:0]
508 * 0x0DF LS PERF_CTL[5:0] 509 * 0x0DF LS PERF_CTL[5:0]
510 * 0x1C0 EX PERF_CTL[5:3]
509 * 0x1D6 EX PERF_CTL[5:0] 511 * 0x1D6 EX PERF_CTL[5:0]
510 * 0x1D8 EX PERF_CTL[5:0] 512 * 0x1D8 EX PERF_CTL[5:0]
511 * 513 *
512 * (*) depending on the umask all FPU counters may be used 514 * (*) depending on the umask all FPU counters may be used
515 * (**) only one unitmask enabled at a time
513 */ 516 */
514 517
515static struct event_constraint amd_f15_PMC0 = EVENT_CONSTRAINT(0, 0x01, 0); 518static struct event_constraint amd_f15_PMC0 = EVENT_CONSTRAINT(0, 0x01, 0);
@@ -559,6 +562,12 @@ amd_get_event_constraints_f15h(struct cpu_hw_events *cpuc, struct perf_event *ev
559 return &amd_f15_PMC3; 562 return &amd_f15_PMC3;
560 case 0x02E: 563 case 0x02E:
561 return &amd_f15_PMC30; 564 return &amd_f15_PMC30;
565 case 0x031:
566 if (hweight_long(hwc->config & ARCH_PERFMON_EVENTSEL_UMASK) <= 1)
567 return &amd_f15_PMC20;
568 return &emptyconstraint;
569 case 0x1C0:
570 return &amd_f15_PMC53;
562 default: 571 default:
563 return &amd_f15_PMC50; 572 return &amd_f15_PMC50;
564 } 573 }