diff options
author | Madhavan Srinivasan <maddy@linux.vnet.ibm.com> | 2017-02-12 12:03:15 -0500 |
---|---|---|
committer | Michael Ellerman <mpe@ellerman.id.au> | 2017-02-17 05:48:54 -0500 |
commit | 8d911904f3ce412b20874a9c95f82009dcbb007c (patch) | |
tree | cf55b2971dbb391e076d5bb3bfd3e97f835fc905 | |
parent | 356d8ce3d0a4a1d7c8448c4d234121736ad3d471 (diff) |
powerpc/perf: Add restrictions to PMC5 in power9 DD1
PMC5 on POWER9 DD1 may not provide right counts in all
sampling scenarios, hence use PM_INST_DISP event instead
in PMC2 or PMC3 in preference.
Signed-off-by: Madhavan Srinivasan <maddy@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
-rw-r--r-- | arch/powerpc/perf/isa207-common.h | 4 | ||||
-rw-r--r-- | arch/powerpc/perf/power9-pmu.c | 2 |
2 files changed, 5 insertions, 1 deletions
diff --git a/arch/powerpc/perf/isa207-common.h b/arch/powerpc/perf/isa207-common.h index 3e9150f6690a..cf9bd8990159 100644 --- a/arch/powerpc/perf/isa207-common.h +++ b/arch/powerpc/perf/isa207-common.h | |||
@@ -222,6 +222,10 @@ | |||
222 | CNST_PMC_VAL(1) | CNST_PMC_VAL(2) | CNST_PMC_VAL(3) | \ | 222 | CNST_PMC_VAL(1) | CNST_PMC_VAL(2) | CNST_PMC_VAL(3) | \ |
223 | CNST_PMC_VAL(4) | CNST_PMC_VAL(5) | CNST_PMC_VAL(6) | CNST_NC_VAL | 223 | CNST_PMC_VAL(4) | CNST_PMC_VAL(5) | CNST_PMC_VAL(6) | CNST_NC_VAL |
224 | 224 | ||
225 | /* | ||
226 | * Lets restrict use of PMC5 for instruction counting. | ||
227 | */ | ||
228 | #define P9_DD1_TEST_ADDER (ISA207_TEST_ADDER | CNST_PMC_VAL(5)) | ||
225 | 229 | ||
226 | /* Bits in MMCR1 for PowerISA v2.07 */ | 230 | /* Bits in MMCR1 for PowerISA v2.07 */ |
227 | #define MMCR1_UNIT_SHIFT(pmc) (60 - (4 * ((pmc) - 1))) | 231 | #define MMCR1_UNIT_SHIFT(pmc) (60 - (4 * ((pmc) - 1))) |
diff --git a/arch/powerpc/perf/power9-pmu.c b/arch/powerpc/perf/power9-pmu.c index 454e9f70894f..5fe9cb1dc3b6 100644 --- a/arch/powerpc/perf/power9-pmu.c +++ b/arch/powerpc/perf/power9-pmu.c | |||
@@ -423,7 +423,7 @@ static struct power_pmu power9_pmu = { | |||
423 | .name = "POWER9", | 423 | .name = "POWER9", |
424 | .n_counter = MAX_PMU_COUNTERS, | 424 | .n_counter = MAX_PMU_COUNTERS, |
425 | .add_fields = ISA207_ADD_FIELDS, | 425 | .add_fields = ISA207_ADD_FIELDS, |
426 | .test_adder = ISA207_TEST_ADDER, | 426 | .test_adder = P9_DD1_TEST_ADDER, |
427 | .compute_mmcr = isa207_compute_mmcr, | 427 | .compute_mmcr = isa207_compute_mmcr, |
428 | .config_bhrb = power9_config_bhrb, | 428 | .config_bhrb = power9_config_bhrb, |
429 | .bhrb_filter_map = power9_bhrb_filter_map, | 429 | .bhrb_filter_map = power9_bhrb_filter_map, |