xref: /linux/tools/perf/pmu-events/arch/x86/amdzen6/recommended.json (revision c7decec2f2d2ab0366567f9e30c0e1418cece43f)
1*d0a3df88SSandipan Das[
2*d0a3df88SSandipan Das  {
3*d0a3df88SSandipan Das    "MetricName": "branch_misprediction_rate",
4*d0a3df88SSandipan Das    "BriefDescription": "Execution-time branch misprediction rate (non-speculative).",
5*d0a3df88SSandipan Das    "MetricExpr": "d_ratio(ex_ret_brn_misp, ex_ret_brn)",
6*d0a3df88SSandipan Das    "MetricGroup": "branch_prediction",
7*d0a3df88SSandipan Das    "ScaleUnit": "1per_branch"
8*d0a3df88SSandipan Das  },
9*d0a3df88SSandipan Das  {
10*d0a3df88SSandipan Das    "MetricName": "all_data_cache_accesses_pti",
11*d0a3df88SSandipan Das    "BriefDescription": "All data cache accesses per thousand instructions.",
12*d0a3df88SSandipan Das    "MetricExpr": "ls_dispatch.all / instructions",
13*d0a3df88SSandipan Das    "MetricGroup": "l1_dcache",
14*d0a3df88SSandipan Das    "ScaleUnit": "1e3per_1k_instr"
15*d0a3df88SSandipan Das  },
16*d0a3df88SSandipan Das  {
17*d0a3df88SSandipan Das    "MetricName": "all_l2_cache_accesses_pti",
18*d0a3df88SSandipan Das    "BriefDescription": "All L2 cache accesses per thousand instructions.",
19*d0a3df88SSandipan Das    "MetricExpr": "(l2_request_g1.no_pf_all + l2_pf_hit_l2.l2_hwpf + l2_pf_miss_l2_hit_l3.l2_hwpf + l2_pf_miss_l2_l3.l2_hwpf) / instructions",
20*d0a3df88SSandipan Das    "MetricGroup": "l2_cache",
21*d0a3df88SSandipan Das    "ScaleUnit": "1e3per_1k_instr"
22*d0a3df88SSandipan Das  },
23*d0a3df88SSandipan Das  {
24*d0a3df88SSandipan Das    "MetricName": "l2_cache_accesses_from_l1_ic_misses_pti",
25*d0a3df88SSandipan Das    "BriefDescription": "L2 cache accesses from L1 instruction cache misses (including prefetch) per thousand instructions.",
26*d0a3df88SSandipan Das    "MetricExpr": "l2_request_g1.cacheable_ic_read / instructions",
27*d0a3df88SSandipan Das    "MetricGroup": "l2_cache",
28*d0a3df88SSandipan Das    "ScaleUnit": "1e3per_1k_instr"
29*d0a3df88SSandipan Das  },
30*d0a3df88SSandipan Das  {
31*d0a3df88SSandipan Das    "MetricName": "l2_cache_accesses_from_l1_dc_misses_pti",
32*d0a3df88SSandipan Das    "BriefDescription": "L2 cache accesses from L1 data cache misses (including prefetch) per thousand instructions.",
33*d0a3df88SSandipan Das    "MetricExpr": "l2_request_g1.dc_all / instructions",
34*d0a3df88SSandipan Das    "MetricGroup": "l2_cache",
35*d0a3df88SSandipan Das    "ScaleUnit": "1e3per_1k_instr"
36*d0a3df88SSandipan Das  },
37*d0a3df88SSandipan Das  {
38*d0a3df88SSandipan Das    "MetricName": "l2_cache_accesses_from_l2_hwpf_pti",
39*d0a3df88SSandipan Das    "BriefDescription": "L2 cache accesses from L2 cache hardware prefetcher per thousand instructions.",
40*d0a3df88SSandipan Das    "MetricExpr": "(l2_pf_hit_l2.l1_dc_l2_hwpf + l2_pf_miss_l2_hit_l3.l1_dc_l2_hwpf + l2_pf_miss_l2_l3.l1_dc_l2_hwpf) / instructions",
41*d0a3df88SSandipan Das    "MetricGroup": "l2_cache",
42*d0a3df88SSandipan Das    "ScaleUnit": "1e3per_1k_instr"
43*d0a3df88SSandipan Das  },
44*d0a3df88SSandipan Das  {
45*d0a3df88SSandipan Das    "MetricName": "all_l2_cache_misses_pti",
46*d0a3df88SSandipan Das    "BriefDescription": "All L2 cache misses per thousand instructions.",
47*d0a3df88SSandipan Das    "MetricExpr": "(l2_cache_req_stat.ic_dc_miss_in_l2 + l2_pf_miss_l2_hit_l3.l2_hwpf + l2_pf_miss_l2_l3.l2_hwpf) / instructions",
48*d0a3df88SSandipan Das    "MetricGroup": "l2_cache",
49*d0a3df88SSandipan Das    "ScaleUnit": "1e3per_1k_instr"
50*d0a3df88SSandipan Das  },
51*d0a3df88SSandipan Das  {
52*d0a3df88SSandipan Das    "MetricName": "l2_cache_misses_from_l1_ic_miss_pti",
53*d0a3df88SSandipan Das    "BriefDescription": "L2 cache misses from L1 instruction cache misses per thousand instructions.",
54*d0a3df88SSandipan Das    "MetricExpr": "l2_cache_req_stat.ic_fill_miss / instructions",
55*d0a3df88SSandipan Das    "MetricGroup": "l2_cache",
56*d0a3df88SSandipan Das    "ScaleUnit": "1e3per_1k_instr"
57*d0a3df88SSandipan Das  },
58*d0a3df88SSandipan Das  {
59*d0a3df88SSandipan Das    "MetricName": "l2_cache_misses_from_l1_dc_miss_pti",
60*d0a3df88SSandipan Das    "BriefDescription": "L2 cache misses from L1 data cache misses per thousand instructions.",
61*d0a3df88SSandipan Das    "MetricExpr": "l2_cache_req_stat.ls_rd_blk_c / instructions",
62*d0a3df88SSandipan Das    "MetricGroup": "l2_cache",
63*d0a3df88SSandipan Das    "ScaleUnit": "1e3per_1k_instr"
64*d0a3df88SSandipan Das  },
65*d0a3df88SSandipan Das  {
66*d0a3df88SSandipan Das    "MetricName": "l2_cache_misses_from_l2_hwpf_pti",
67*d0a3df88SSandipan Das    "BriefDescription": "L2 cache misses from L2 cache hardware prefetcher per thousand instructions.",
68*d0a3df88SSandipan Das    "MetricExpr": "(l2_pf_miss_l2_hit_l3.l1_dc_l2_hwpf + l2_pf_miss_l2_l3.l1_dc_l2_hwpf) / instructions",
69*d0a3df88SSandipan Das    "MetricGroup": "l2_cache",
70*d0a3df88SSandipan Das    "ScaleUnit": "1e3per_1k_instr"
71*d0a3df88SSandipan Das  },
72*d0a3df88SSandipan Das  {
73*d0a3df88SSandipan Das    "MetricName": "all_l2_cache_hits_pti",
74*d0a3df88SSandipan Das    "BriefDescription": "All L2 cache hits per thousand instructions.",
75*d0a3df88SSandipan Das    "MetricExpr": "(l2_cache_req_stat.ic_dc_hit_in_l2 + l2_pf_hit_l2.l2_hwpf) / instructions",
76*d0a3df88SSandipan Das    "MetricGroup": "l2_cache",
77*d0a3df88SSandipan Das    "ScaleUnit": "1e3per_1k_instr"
78*d0a3df88SSandipan Das  },
79*d0a3df88SSandipan Das  {
80*d0a3df88SSandipan Das    "MetricName": "l2_cache_hits_from_l1_ic_miss_pti",
81*d0a3df88SSandipan Das    "BriefDescription": "L2 cache hits from L1 instruction cache misses per thousand instructions.",
82*d0a3df88SSandipan Das    "MetricExpr": "l2_cache_req_stat.ic_hit_in_l2 / instructions",
83*d0a3df88SSandipan Das    "MetricGroup": "l2_cache",
84*d0a3df88SSandipan Das    "ScaleUnit": "1e3per_1k_instr"
85*d0a3df88SSandipan Das  },
86*d0a3df88SSandipan Das  {
87*d0a3df88SSandipan Das    "MetricName": "l2_cache_hits_from_l1_dc_miss_pti",
88*d0a3df88SSandipan Das    "BriefDescription": "L2 cache hits from L1 data cache misses per thousand instructions.",
89*d0a3df88SSandipan Das    "MetricExpr": "l2_cache_req_stat.dc_hit_in_l2 / instructions",
90*d0a3df88SSandipan Das    "MetricGroup": "l2_cache",
91*d0a3df88SSandipan Das    "ScaleUnit": "1e3per_1k_instr"
92*d0a3df88SSandipan Das  },
93*d0a3df88SSandipan Das  {
94*d0a3df88SSandipan Das    "MetricName": "l2_cache_hits_from_l2_hwpf_pti",
95*d0a3df88SSandipan Das    "BriefDescription": "L2 cache hits from L2 cache hardware prefetcher per thousand instructions.",
96*d0a3df88SSandipan Das    "MetricExpr": "l2_pf_hit_l2.l1_dc_l2_hwpf / instructions",
97*d0a3df88SSandipan Das    "MetricGroup": "l2_cache",
98*d0a3df88SSandipan Das    "ScaleUnit": "1e3per_1k_instr"
99*d0a3df88SSandipan Das  },
100*d0a3df88SSandipan Das  {
101*d0a3df88SSandipan Das    "MetricName": "l3_cache_accesses",
102*d0a3df88SSandipan Das    "BriefDescription": "L3 cache accesses.",
103*d0a3df88SSandipan Das    "MetricExpr": "l3_lookup_state.all_coherent_accesses_to_l3",
104*d0a3df88SSandipan Das    "MetricGroup": "l3_cache"
105*d0a3df88SSandipan Das  },
106*d0a3df88SSandipan Das  {
107*d0a3df88SSandipan Das    "MetricName": "l3_misses",
108*d0a3df88SSandipan Das    "BriefDescription": "L3 misses (including cacheline state change requests).",
109*d0a3df88SSandipan Das    "MetricExpr": "l3_lookup_state.l3_miss",
110*d0a3df88SSandipan Das    "MetricGroup": "l3_cache"
111*d0a3df88SSandipan Das  },
112*d0a3df88SSandipan Das  {
113*d0a3df88SSandipan Das    "MetricName": "l3_read_miss_latency",
114*d0a3df88SSandipan Das    "BriefDescription": "Average L3 read miss latency (in core clocks).",
115*d0a3df88SSandipan Das    "MetricExpr": "(l3_xi_sampled_latency.all * 10) / l3_xi_sampled_latency_requests.all",
116*d0a3df88SSandipan Das    "MetricGroup": "l3_cache",
117*d0a3df88SSandipan Das    "ScaleUnit": "1ns"
118*d0a3df88SSandipan Das  },
119*d0a3df88SSandipan Das  {
120*d0a3df88SSandipan Das    "MetricName": "l3_read_miss_latency_for_local_dram",
121*d0a3df88SSandipan Das    "BriefDescription": "Average L3 read miss latency (in core clocks) for local DRAM.",
122*d0a3df88SSandipan Das    "MetricExpr": "(l3_xi_sampled_latency.dram_near * 10) / l3_xi_sampled_latency_requests.dram_near",
123*d0a3df88SSandipan Das    "MetricGroup": "l3_cache",
124*d0a3df88SSandipan Das    "ScaleUnit": "1ns"
125*d0a3df88SSandipan Das  },
126*d0a3df88SSandipan Das  {
127*d0a3df88SSandipan Das    "MetricName": "l3_read_miss_latency_for_remote_dram",
128*d0a3df88SSandipan Das    "BriefDescription": "Average L3 read miss latency (in core clocks) for remote DRAM.",
129*d0a3df88SSandipan Das    "MetricExpr": "(l3_xi_sampled_latency.dram_far * 10) / l3_xi_sampled_latency_requests.dram_far",
130*d0a3df88SSandipan Das    "MetricGroup": "l3_cache",
131*d0a3df88SSandipan Das    "ScaleUnit": "1ns"
132*d0a3df88SSandipan Das  },
133*d0a3df88SSandipan Das  {
134*d0a3df88SSandipan Das    "MetricName": "op_cache_fetch_miss_ratio",
135*d0a3df88SSandipan Das    "BriefDescription": "Op cache miss ratio for all fetches.",
136*d0a3df88SSandipan Das    "MetricExpr": "d_ratio(op_cache_hit_miss.miss, op_cache_hit_miss.all)",
137*d0a3df88SSandipan Das    "ScaleUnit": "100%"
138*d0a3df88SSandipan Das  },
139*d0a3df88SSandipan Das  {
140*d0a3df88SSandipan Das    "MetricName": "l1_data_cache_fills_from_memory_pti",
141*d0a3df88SSandipan Das    "BriefDescription": "L1 data cache fills from DRAM or MMIO in any NUMA node per thousand instructions.",
142*d0a3df88SSandipan Das    "MetricExpr": "ls_any_fills_from_sys.dram_io_all / instructions",
143*d0a3df88SSandipan Das    "MetricGroup": "l1_dcache",
144*d0a3df88SSandipan Das    "ScaleUnit": "1e3per_1k_instr"
145*d0a3df88SSandipan Das  },
146*d0a3df88SSandipan Das  {
147*d0a3df88SSandipan Das    "MetricName": "l1_data_cache_fills_from_remote_node_pti",
148*d0a3df88SSandipan Das    "BriefDescription": "L1 data cache fills from a different NUMA node per thousand instructions.",
149*d0a3df88SSandipan Das    "MetricExpr": "ls_any_fills_from_sys.far_all / instructions",
150*d0a3df88SSandipan Das    "MetricGroup": "l1_dcache",
151*d0a3df88SSandipan Das    "ScaleUnit": "1e3per_1k_instr"
152*d0a3df88SSandipan Das  },
153*d0a3df88SSandipan Das  {
154*d0a3df88SSandipan Das    "MetricName": "l1_data_cache_fills_from_same_ccx_pti",
155*d0a3df88SSandipan Das    "BriefDescription": "L1 data cache fills from within the same CCX per thousand instructions.",
156*d0a3df88SSandipan Das    "MetricExpr": "ls_any_fills_from_sys.local_all / instructions",
157*d0a3df88SSandipan Das    "MetricGroup": "l1_dcache",
158*d0a3df88SSandipan Das    "ScaleUnit": "1e3per_1k_instr"
159*d0a3df88SSandipan Das  },
160*d0a3df88SSandipan Das  {
161*d0a3df88SSandipan Das    "MetricName": "l1_data_cache_fills_from_different_ccx_pti",
162*d0a3df88SSandipan Das    "BriefDescription": "L1 data cache fills from another CCX cache in any NUMA node per thousand instructions.",
163*d0a3df88SSandipan Das    "MetricExpr": "ls_any_fills_from_sys.remote_cache / instructions",
164*d0a3df88SSandipan Das    "MetricGroup": "l1_dcache",
165*d0a3df88SSandipan Das    "ScaleUnit": "1e3per_1k_instr"
166*d0a3df88SSandipan Das  },
167*d0a3df88SSandipan Das  {
168*d0a3df88SSandipan Das    "MetricName": "all_l1_data_cache_fills_pti",
169*d0a3df88SSandipan Das    "BriefDescription": "All L1 data cache fills per thousand instructions.",
170*d0a3df88SSandipan Das    "MetricExpr": "ls_any_fills_from_sys.all / instructions",
171*d0a3df88SSandipan Das    "MetricGroup": "l1_dcache",
172*d0a3df88SSandipan Das    "ScaleUnit": "1e3per_1k_instr"
173*d0a3df88SSandipan Das  },
174*d0a3df88SSandipan Das  {
175*d0a3df88SSandipan Das    "MetricName": "l1_demand_data_cache_fills_from_local_l2_pti",
176*d0a3df88SSandipan Das    "BriefDescription": "L1 demand data cache fills from local L2 cache per thousand instructions.",
177*d0a3df88SSandipan Das    "MetricExpr": "ls_dmnd_fills_from_sys.local_l2 / instructions",
178*d0a3df88SSandipan Das    "MetricGroup": "l1_dcache",
179*d0a3df88SSandipan Das    "ScaleUnit": "1e3per_1k_instr"
180*d0a3df88SSandipan Das  },
181*d0a3df88SSandipan Das  {
182*d0a3df88SSandipan Das    "MetricName": "l1_demand_data_cache_fills_from_same_ccx_pti",
183*d0a3df88SSandipan Das    "BriefDescription": "L1 demand data cache fills from within the same CCX per thousand instructions.",
184*d0a3df88SSandipan Das    "MetricExpr": "ls_dmnd_fills_from_sys.local_ccx / instructions",
185*d0a3df88SSandipan Das    "MetricGroup": "l1_dcache",
186*d0a3df88SSandipan Das    "ScaleUnit": "1e3per_1k_instr"
187*d0a3df88SSandipan Das  },
188*d0a3df88SSandipan Das  {
189*d0a3df88SSandipan Das    "MetricName": "l1_demand_data_cache_fills_from_near_cache_pti",
190*d0a3df88SSandipan Das    "BriefDescription": "L1 demand data cache fills from another CCX cache in the same NUMA node per thousand instructions.",
191*d0a3df88SSandipan Das    "MetricExpr": "ls_dmnd_fills_from_sys.near_cache / instructions",
192*d0a3df88SSandipan Das    "MetricGroup": "l1_dcache",
193*d0a3df88SSandipan Das    "ScaleUnit": "1e3per_1k_instr"
194*d0a3df88SSandipan Das  },
195*d0a3df88SSandipan Das  {
196*d0a3df88SSandipan Das    "MetricName": "l1_demand_data_cache_fills_from_near_memory_pti",
197*d0a3df88SSandipan Das    "BriefDescription": "L1 demand data cache fills from DRAM or MMIO in the same NUMA node per thousand instructions.",
198*d0a3df88SSandipan Das    "MetricExpr": "ls_dmnd_fills_from_sys.dram_io_near / instructions",
199*d0a3df88SSandipan Das    "MetricGroup": "l1_dcache",
200*d0a3df88SSandipan Das    "ScaleUnit": "1e3per_1k_instr"
201*d0a3df88SSandipan Das  },
202*d0a3df88SSandipan Das  {
203*d0a3df88SSandipan Das    "MetricName": "l1_demand_data_cache_fills_from_far_cache_pti",
204*d0a3df88SSandipan Das    "BriefDescription": "L1 demand data cache fills from another CCX cache in a different NUMA node per thousand instructions.",
205*d0a3df88SSandipan Das    "MetricExpr": "ls_dmnd_fills_from_sys.far_cache / instructions",
206*d0a3df88SSandipan Das    "MetricGroup": "l1_dcache",
207*d0a3df88SSandipan Das    "ScaleUnit": "1e3per_1k_instr"
208*d0a3df88SSandipan Das  },
209*d0a3df88SSandipan Das  {
210*d0a3df88SSandipan Das    "MetricName": "l1_demand_data_cache_fills_from_far_memory_pti",
211*d0a3df88SSandipan Das    "BriefDescription": "L1 demand data cache fills from DRAM or MMIO in a different NUMA node per thousand instructions.",
212*d0a3df88SSandipan Das    "MetricExpr": "ls_dmnd_fills_from_sys.dram_io_far / instructions",
213*d0a3df88SSandipan Das    "MetricGroup": "l1_dcache",
214*d0a3df88SSandipan Das    "ScaleUnit": "1e3per_1k_instr"
215*d0a3df88SSandipan Das  },
216*d0a3df88SSandipan Das  {
217*d0a3df88SSandipan Das    "MetricName": "l1_itlb_misses_pti",
218*d0a3df88SSandipan Das    "BriefDescription": "L1 instruction TLB misses per thousand instructions.",
219*d0a3df88SSandipan Das    "MetricExpr": "(bp_l1_tlb_miss_l2_tlb_hit + bp_l1_tlb_miss_l2_tlb_miss.all) / instructions",
220*d0a3df88SSandipan Das    "MetricGroup": "tlb",
221*d0a3df88SSandipan Das    "ScaleUnit": "1e3per_1k_instr"
222*d0a3df88SSandipan Das  },
223*d0a3df88SSandipan Das  {
224*d0a3df88SSandipan Das    "MetricName": "l2_itlb_misses_pti",
225*d0a3df88SSandipan Das    "BriefDescription": "L2 instruction TLB misses and instruction page walks per thousand instructions.",
226*d0a3df88SSandipan Das    "MetricExpr": "bp_l1_tlb_miss_l2_tlb_miss.all / instructions",
227*d0a3df88SSandipan Das    "MetricGroup": "tlb",
228*d0a3df88SSandipan Das    "ScaleUnit": "1e3per_1k_instr"
229*d0a3df88SSandipan Das  },
230*d0a3df88SSandipan Das  {
231*d0a3df88SSandipan Das    "MetricName": "l1_dtlb_misses_pti",
232*d0a3df88SSandipan Das    "BriefDescription": "L1 data TLB misses per thousand instructions.",
233*d0a3df88SSandipan Das    "MetricExpr": "ls_l1_d_tlb_miss.all / instructions",
234*d0a3df88SSandipan Das    "MetricGroup": "tlb",
235*d0a3df88SSandipan Das    "ScaleUnit": "1e3per_1k_instr"
236*d0a3df88SSandipan Das  },
237*d0a3df88SSandipan Das  {
238*d0a3df88SSandipan Das    "MetricName": "l2_dtlb_misses_pti",
239*d0a3df88SSandipan Das    "BriefDescription": "L2 data TLB misses and data page walks per thousand instructions.",
240*d0a3df88SSandipan Das    "MetricExpr": "ls_l1_d_tlb_miss.l2_miss_all / instructions",
241*d0a3df88SSandipan Das    "MetricGroup": "tlb",
242*d0a3df88SSandipan Das    "ScaleUnit": "1e3per_1k_instr"
243*d0a3df88SSandipan Das  },
244*d0a3df88SSandipan Das  {
245*d0a3df88SSandipan Das    "MetricName": "all_tlbs_flushed_pti",
246*d0a3df88SSandipan Das    "BriefDescription": "All TLBs flushed per thousand instructions.",
247*d0a3df88SSandipan Das    "MetricExpr": "ls_tlb_flush.all / instructions",
248*d0a3df88SSandipan Das    "MetricGroup": "tlb",
249*d0a3df88SSandipan Das    "ScaleUnit": "1e3per_1k_instr"
250*d0a3df88SSandipan Das  },
251*d0a3df88SSandipan Das  {
252*d0a3df88SSandipan Das    "MetricName": "macro_ops_dispatched",
253*d0a3df88SSandipan Das    "BriefDescription": "Macro-ops dispatched.",
254*d0a3df88SSandipan Das    "MetricExpr": "de_src_op_disp.all",
255*d0a3df88SSandipan Das    "MetricGroup": "decoder"
256*d0a3df88SSandipan Das  },
257*d0a3df88SSandipan Das  {
258*d0a3df88SSandipan Das    "MetricName": "sse_avx_stalls",
259*d0a3df88SSandipan Das    "BriefDescription": "Mixed SSE/AVX stalls.",
260*d0a3df88SSandipan Das    "MetricExpr": "fp_disp_faults.sse_avx_all"
261*d0a3df88SSandipan Das  },
262*d0a3df88SSandipan Das  {
263*d0a3df88SSandipan Das    "MetricName": "macro_ops_retired",
264*d0a3df88SSandipan Das    "BriefDescription": "Macro-ops retired.",
265*d0a3df88SSandipan Das    "MetricExpr": "ex_ret_ops"
266*d0a3df88SSandipan Das  },
267*d0a3df88SSandipan Das  {
268*d0a3df88SSandipan Das    "MetricName": "umc_data_bus_utilization",
269*d0a3df88SSandipan Das    "BriefDescription": "Memory controller data bus utilization.",
270*d0a3df88SSandipan Das    "MetricExpr": "d_ratio(umc_data_slot_clks.all / 2, umc_mem_clk)",
271*d0a3df88SSandipan Das    "MetricGroup": "memory_controller",
272*d0a3df88SSandipan Das    "PerPkg": "1",
273*d0a3df88SSandipan Das    "ScaleUnit": "100%"
274*d0a3df88SSandipan Das  },
275*d0a3df88SSandipan Das  {
276*d0a3df88SSandipan Das    "MetricName": "umc_cas_cmd_rate",
277*d0a3df88SSandipan Das    "BriefDescription": "Memory controller CAS command rate.",
278*d0a3df88SSandipan Das    "MetricExpr": "d_ratio(umc_cas_cmd.all * 1000, umc_mem_clk)",
279*d0a3df88SSandipan Das    "MetricGroup": "memory_controller",
280*d0a3df88SSandipan Das    "PerPkg": "1",
281*d0a3df88SSandipan Das    "ScaleUnit": "1per_memclk"
282*d0a3df88SSandipan Das  },
283*d0a3df88SSandipan Das  {
284*d0a3df88SSandipan Das    "MetricName": "umc_cas_cmd_read_ratio",
285*d0a3df88SSandipan Das    "BriefDescription": "Ratio of memory controller CAS commands for reads.",
286*d0a3df88SSandipan Das    "MetricExpr": "d_ratio(umc_cas_cmd.rd, umc_cas_cmd.all)",
287*d0a3df88SSandipan Das    "MetricGroup": "memory_controller",
288*d0a3df88SSandipan Das    "PerPkg": "1",
289*d0a3df88SSandipan Das    "ScaleUnit": "100%"
290*d0a3df88SSandipan Das  },
291*d0a3df88SSandipan Das  {
292*d0a3df88SSandipan Das    "MetricName": "umc_cas_cmd_write_ratio",
293*d0a3df88SSandipan Das    "BriefDescription": "Ratio of memory controller CAS commands for writes.",
294*d0a3df88SSandipan Das    "MetricExpr": "d_ratio(umc_cas_cmd.wr, umc_cas_cmd.all)",
295*d0a3df88SSandipan Das    "MetricGroup": "memory_controller",
296*d0a3df88SSandipan Das    "PerPkg": "1",
297*d0a3df88SSandipan Das    "ScaleUnit": "100%"
298*d0a3df88SSandipan Das  },
299*d0a3df88SSandipan Das  {
300*d0a3df88SSandipan Das    "MetricName": "umc_mem_read_bandwidth",
301*d0a3df88SSandipan Das    "BriefDescription": "Estimated memory read bandwidth.",
302*d0a3df88SSandipan Das    "MetricExpr": "(umc_cas_cmd.rd * 64) / 1e6 / duration_time",
303*d0a3df88SSandipan Das    "MetricGroup": "memory_controller",
304*d0a3df88SSandipan Das    "PerPkg": "1",
305*d0a3df88SSandipan Das    "ScaleUnit": "1MB/s"
306*d0a3df88SSandipan Das  },
307*d0a3df88SSandipan Das  {
308*d0a3df88SSandipan Das    "MetricName": "umc_mem_write_bandwidth",
309*d0a3df88SSandipan Das    "BriefDescription": "Estimated memory write bandwidth.",
310*d0a3df88SSandipan Das    "MetricExpr": "(umc_cas_cmd.wr * 64) / 1e6 / duration_time",
311*d0a3df88SSandipan Das    "MetricGroup": "memory_controller",
312*d0a3df88SSandipan Das    "PerPkg": "1",
313*d0a3df88SSandipan Das    "ScaleUnit": "1MB/s"
314*d0a3df88SSandipan Das  },
315*d0a3df88SSandipan Das  {
316*d0a3df88SSandipan Das    "MetricName": "umc_mem_bandwidth",
317*d0a3df88SSandipan Das    "BriefDescription": "Estimated combined memory bandwidth.",
318*d0a3df88SSandipan Das    "MetricExpr": "(umc_cas_cmd.all * 64) / 1e6 / duration_time",
319*d0a3df88SSandipan Das    "MetricGroup": "memory_controller",
320*d0a3df88SSandipan Das    "PerPkg": "1",
321*d0a3df88SSandipan Das    "ScaleUnit": "1MB/s"
322*d0a3df88SSandipan Das  },
323*d0a3df88SSandipan Das  {
324*d0a3df88SSandipan Das    "MetricName": "umc_activate_cmd_rate",
325*d0a3df88SSandipan Das    "BriefDescription": "Memory controller ACTIVATE command rate.",
326*d0a3df88SSandipan Das    "MetricExpr": "d_ratio(umc_act_cmd.all * 1000, umc_mem_clk)",
327*d0a3df88SSandipan Das    "MetricGroup": "memory_controller",
328*d0a3df88SSandipan Das    "PerPkg": "1",
329*d0a3df88SSandipan Das    "ScaleUnit": "1per_memclk"
330*d0a3df88SSandipan Das  },
331*d0a3df88SSandipan Das  {
332*d0a3df88SSandipan Das    "MetricName": "umc_precharge_cmd_rate",
333*d0a3df88SSandipan Das    "BriefDescription": "Memory controller PRECHARGE command rate.",
334*d0a3df88SSandipan Das    "MetricExpr": "d_ratio(umc_pchg_cmd.all * 1000, umc_mem_clk)",
335*d0a3df88SSandipan Das    "MetricGroup": "memory_controller",
336*d0a3df88SSandipan Das    "PerPkg": "1",
337*d0a3df88SSandipan Das    "ScaleUnit": "1per_memclk"
338*d0a3df88SSandipan Das  }
339*d0a3df88SSandipan Das]
340