diff options
Diffstat (limited to 'arch')
-rw-r--r-- | arch/x86/kernel/cpu/perf_event_amd.c | 11 |
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 | ||
515 | static struct event_constraint amd_f15_PMC0 = EVENT_CONSTRAINT(0, 0x01, 0); | 518 | static 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 | } |