aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVineet Gupta <vgupta@synopsys.com>2015-01-07 02:44:07 -0500
committerVineet Gupta <vgupta@synopsys.com>2015-04-20 08:57:34 -0400
commit0a8a47679351f00145ddeaa0a05b510e67b780be (patch)
tree6740376fd0296cd29afbe7c18c62966ead9c264e
parentbde80c237e49983e2b26dfa9925325a070b71de7 (diff)
ARC: perf: support cache hit/miss ratio
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
-rw-r--r--arch/arc/include/asm/perf_event.h17
1 files changed, 12 insertions, 5 deletions
diff --git a/arch/arc/include/asm/perf_event.h b/arch/arc/include/asm/perf_event.h
index 1c45667c1367..2b8880e953a2 100644
--- a/arch/arc/include/asm/perf_event.h
+++ b/arch/arc/include/asm/perf_event.h
@@ -54,7 +54,10 @@ struct arc_reg_cc_build {
54#define PERF_COUNT_ARC_BPOK (PERF_COUNT_HW_MAX + 3) 54#define PERF_COUNT_ARC_BPOK (PERF_COUNT_HW_MAX + 3)
55#define PERF_COUNT_ARC_EDTLB (PERF_COUNT_HW_MAX + 4) 55#define PERF_COUNT_ARC_EDTLB (PERF_COUNT_HW_MAX + 4)
56#define PERF_COUNT_ARC_EITLB (PERF_COUNT_HW_MAX + 5) 56#define PERF_COUNT_ARC_EITLB (PERF_COUNT_HW_MAX + 5)
57#define PERF_COUNT_ARC_HW_MAX (PERF_COUNT_HW_MAX + 6) 57#define PERF_COUNT_ARC_LDC (PERF_COUNT_HW_MAX + 6)
58#define PERF_COUNT_ARC_STC (PERF_COUNT_HW_MAX + 7)
59
60#define PERF_COUNT_ARC_HW_MAX (PERF_COUNT_HW_MAX + 8)
58 61
59/* 62/*
60 * Some ARC pct quirks: 63 * Some ARC pct quirks:
@@ -96,6 +99,9 @@ static const char * const arc_pmu_ev_hw_map[] = {
96 [PERF_COUNT_ARC_BPOK] = "bpok", /* NP-NT, PT-T, PNT-NT */ 99 [PERF_COUNT_ARC_BPOK] = "bpok", /* NP-NT, PT-T, PNT-NT */
97 [PERF_COUNT_HW_BRANCH_MISSES] = "bpfail", /* NP-T, PT-NT, PNT-T */ 100 [PERF_COUNT_HW_BRANCH_MISSES] = "bpfail", /* NP-T, PT-NT, PNT-T */
98 101
102 [PERF_COUNT_ARC_LDC] = "imemrdc", /* Instr: mem read cached */
103 [PERF_COUNT_ARC_STC] = "imemwrc", /* Instr: mem write cached */
104
99 [PERF_COUNT_ARC_DCLM] = "dclm", /* D-cache Load Miss */ 105 [PERF_COUNT_ARC_DCLM] = "dclm", /* D-cache Load Miss */
100 [PERF_COUNT_ARC_DCSM] = "dcsm", /* D-cache Store Miss */ 106 [PERF_COUNT_ARC_DCSM] = "dcsm", /* D-cache Store Miss */
101 [PERF_COUNT_ARC_ICM] = "icm", /* I-cache Miss */ 107 [PERF_COUNT_ARC_ICM] = "icm", /* I-cache Miss */
@@ -109,11 +115,11 @@ static const char * const arc_pmu_ev_hw_map[] = {
109static const unsigned arc_pmu_cache_map[C(MAX)][C(OP_MAX)][C(RESULT_MAX)] = { 115static const unsigned arc_pmu_cache_map[C(MAX)][C(OP_MAX)][C(RESULT_MAX)] = {
110 [C(L1D)] = { 116 [C(L1D)] = {
111 [C(OP_READ)] = { 117 [C(OP_READ)] = {
112 [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED, 118 [C(RESULT_ACCESS)] = PERF_COUNT_ARC_LDC,
113 [C(RESULT_MISS)] = PERF_COUNT_ARC_DCLM, 119 [C(RESULT_MISS)] = PERF_COUNT_ARC_DCLM,
114 }, 120 },
115 [C(OP_WRITE)] = { 121 [C(OP_WRITE)] = {
116 [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED, 122 [C(RESULT_ACCESS)] = PERF_COUNT_ARC_STC,
117 [C(RESULT_MISS)] = PERF_COUNT_ARC_DCSM, 123 [C(RESULT_MISS)] = PERF_COUNT_ARC_DCSM,
118 }, 124 },
119 [C(OP_PREFETCH)] = { 125 [C(OP_PREFETCH)] = {
@@ -123,7 +129,7 @@ static const unsigned arc_pmu_cache_map[C(MAX)][C(OP_MAX)][C(RESULT_MAX)] = {
123 }, 129 },
124 [C(L1I)] = { 130 [C(L1I)] = {
125 [C(OP_READ)] = { 131 [C(OP_READ)] = {
126 [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED, 132 [C(RESULT_ACCESS)] = PERF_COUNT_HW_INSTRUCTIONS,
127 [C(RESULT_MISS)] = PERF_COUNT_ARC_ICM, 133 [C(RESULT_MISS)] = PERF_COUNT_ARC_ICM,
128 }, 134 },
129 [C(OP_WRITE)] = { 135 [C(OP_WRITE)] = {
@@ -151,9 +157,10 @@ static const unsigned arc_pmu_cache_map[C(MAX)][C(OP_MAX)][C(RESULT_MAX)] = {
151 }, 157 },
152 [C(DTLB)] = { 158 [C(DTLB)] = {
153 [C(OP_READ)] = { 159 [C(OP_READ)] = {
154 [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED, 160 [C(RESULT_ACCESS)] = PERF_COUNT_ARC_LDC,
155 [C(RESULT_MISS)] = PERF_COUNT_ARC_EDTLB, 161 [C(RESULT_MISS)] = PERF_COUNT_ARC_EDTLB,
156 }, 162 },
163 /* DTLB LD/ST Miss not segregated by h/w*/
157 [C(OP_WRITE)] = { 164 [C(OP_WRITE)] = {
158 [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED, 165 [C(RESULT_ACCESS)] = CACHE_OP_UNSUPPORTED,
159 [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED, 166 [C(RESULT_MISS)] = CACHE_OP_UNSUPPORTED,