|
@@ -50,6 +50,18 @@
|
|
|
#define MMCR1_PMCSEL_SH(n) (MMCR1_PMC1SEL_SH - (n) * 8)
|
|
|
#define MMCR1_PMCSEL_MSK 0xff
|
|
|
|
|
|
+/*
|
|
|
+ * Power7 event codes.
|
|
|
+ */
|
|
|
+#define PME_PM_CYC 0x1e
|
|
|
+#define PME_PM_GCT_NOSLOT_CYC 0x100f8
|
|
|
+#define PME_PM_CMPLU_STALL 0x4000a
|
|
|
+#define PME_PM_INST_CMPL 0x2
|
|
|
+#define PME_PM_LD_REF_L1 0xc880
|
|
|
+#define PME_PM_LD_MISS_L1 0x400f0
|
|
|
+#define PME_PM_BRU_FIN 0x10068
|
|
|
+#define PME_PM_BRU_MPRED 0x400f6
|
|
|
+
|
|
|
/*
|
|
|
* Layout of constraint bits:
|
|
|
* 6666555555555544444444443333333333222222222211111111110000000000
|
|
@@ -307,14 +319,14 @@ static void power7_disable_pmc(unsigned int pmc, unsigned long mmcr[])
|
|
|
}
|
|
|
|
|
|
static int power7_generic_events[] = {
|
|
|
- [PERF_COUNT_HW_CPU_CYCLES] = 0x1e,
|
|
|
- [PERF_COUNT_HW_STALLED_CYCLES_FRONTEND] = 0x100f8, /* GCT_NOSLOT_CYC */
|
|
|
- [PERF_COUNT_HW_STALLED_CYCLES_BACKEND] = 0x4000a, /* CMPLU_STALL */
|
|
|
- [PERF_COUNT_HW_INSTRUCTIONS] = 2,
|
|
|
- [PERF_COUNT_HW_CACHE_REFERENCES] = 0xc880, /* LD_REF_L1_LSU*/
|
|
|
- [PERF_COUNT_HW_CACHE_MISSES] = 0x400f0, /* LD_MISS_L1 */
|
|
|
- [PERF_COUNT_HW_BRANCH_INSTRUCTIONS] = 0x10068, /* BRU_FIN */
|
|
|
- [PERF_COUNT_HW_BRANCH_MISSES] = 0x400f6, /* BR_MPRED */
|
|
|
+ [PERF_COUNT_HW_CPU_CYCLES] = PME_PM_CYC,
|
|
|
+ [PERF_COUNT_HW_STALLED_CYCLES_FRONTEND] = PME_PM_GCT_NOSLOT_CYC,
|
|
|
+ [PERF_COUNT_HW_STALLED_CYCLES_BACKEND] = PME_PM_CMPLU_STALL,
|
|
|
+ [PERF_COUNT_HW_INSTRUCTIONS] = PME_PM_INST_CMPL,
|
|
|
+ [PERF_COUNT_HW_CACHE_REFERENCES] = PME_PM_LD_REF_L1,
|
|
|
+ [PERF_COUNT_HW_CACHE_MISSES] = PME_PM_LD_MISS_L1,
|
|
|
+ [PERF_COUNT_HW_BRANCH_INSTRUCTIONS] = PME_PM_BRU_FIN,
|
|
|
+ [PERF_COUNT_HW_BRANCH_MISSES] = PME_PM_BRU_MPRED,
|
|
|
};
|
|
|
|
|
|
#define C(x) PERF_COUNT_HW_CACHE_##x
|