powerpc/perf: Add restrictions to PMC5 in power9 DD1
authorMadhavan Srinivasan <maddy@linux.vnet.ibm.com>
Sun, 12 Feb 2017 17:03:15 +0000 (22:33 +0530)
committerMichael Ellerman <mpe@ellerman.id.au>
Fri, 17 Feb 2017 10:48:54 +0000 (21:48 +1100)
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>
arch/powerpc/perf/isa207-common.h
arch/powerpc/perf/power9-pmu.c

index 3e9150f6690ad8b948f7cb0be00430efd2cba97c..cf9bd89901595cc38b793bc916a2096d873054eb 100644 (file)
        CNST_PMC_VAL(1) | CNST_PMC_VAL(2) | CNST_PMC_VAL(3) | \
        CNST_PMC_VAL(4) | CNST_PMC_VAL(5) | CNST_PMC_VAL(6) | CNST_NC_VAL
 
+/*
+ * Lets restrict use of PMC5 for instruction counting.
+ */
+#define P9_DD1_TEST_ADDER      (ISA207_TEST_ADDER | CNST_PMC_VAL(5))
 
 /* Bits in MMCR1 for PowerISA v2.07 */
 #define MMCR1_UNIT_SHIFT(pmc)          (60 - (4 * ((pmc) - 1)))
index 454e9f70894f75fe7cd1966e57ed49085be14748..5fe9cb1dc3b68fe0da315cf2f8ea1e08b1ef98dd 100644 (file)
@@ -423,7 +423,7 @@ static struct power_pmu power9_pmu = {
        .name                   = "POWER9",
        .n_counter              = MAX_PMU_COUNTERS,
        .add_fields             = ISA207_ADD_FIELDS,
-       .test_adder             = ISA207_TEST_ADDER,
+       .test_adder             = P9_DD1_TEST_ADDER,
        .compute_mmcr           = isa207_compute_mmcr,
        .config_bhrb            = power9_config_bhrb,
        .bhrb_filter_map        = power9_bhrb_filter_map,