1*2bb3fbadSZhengjun Xing[
2*2bb3fbadSZhengjun Xing    {
3*2bb3fbadSZhengjun Xing        "BriefDescription": "Counts the number of issue slots  that were not consumed by the backend due to frontend stalls.",
4*2bb3fbadSZhengjun Xing        "MetricExpr": "TOPDOWN_FE_BOUND.ALL / SLOTS",
5*2bb3fbadSZhengjun Xing        "MetricGroup": "TopdownL1",
6*2bb3fbadSZhengjun Xing        "MetricName": "tma_frontend_bound",
7*2bb3fbadSZhengjun Xing        "ScaleUnit": "100%"
8*2bb3fbadSZhengjun Xing    },
9*2bb3fbadSZhengjun Xing    {
10*2bb3fbadSZhengjun Xing        "BriefDescription": "Counts the number of issue slots  that were not delivered by the frontend due to frontend bandwidth restrictions due to decode, predecode, cisc, and other limitations.",
11*2bb3fbadSZhengjun Xing        "MetricExpr": "TOPDOWN_FE_BOUND.FRONTEND_LATENCY / SLOTS",
12*2bb3fbadSZhengjun Xing        "MetricGroup": "TopdownL2;tma_frontend_bound_group",
13*2bb3fbadSZhengjun Xing        "MetricName": "tma_frontend_latency",
14*2bb3fbadSZhengjun Xing        "ScaleUnit": "100%"
15*2bb3fbadSZhengjun Xing    },
16*2bb3fbadSZhengjun Xing    {
17*2bb3fbadSZhengjun Xing        "BriefDescription": "Counts the number of issue slots  that were not delivered by the frontend due to instruction cache misses.",
18*2bb3fbadSZhengjun Xing        "MetricExpr": "TOPDOWN_FE_BOUND.ICACHE / SLOTS",
19*2bb3fbadSZhengjun Xing        "MetricGroup": "TopdownL3;tma_frontend_latency_group",
20*2bb3fbadSZhengjun Xing        "MetricName": "tma_icache",
21*2bb3fbadSZhengjun Xing        "ScaleUnit": "100%"
22*2bb3fbadSZhengjun Xing    },
23*2bb3fbadSZhengjun Xing    {
24*2bb3fbadSZhengjun Xing        "BriefDescription": "Counts the number of issue slots  that were not delivered by the frontend due to Instruction Table Lookaside Buffer (ITLB) misses.",
25*2bb3fbadSZhengjun Xing        "MetricExpr": "TOPDOWN_FE_BOUND.ITLB / SLOTS",
26*2bb3fbadSZhengjun Xing        "MetricGroup": "TopdownL3;tma_frontend_latency_group",
27*2bb3fbadSZhengjun Xing        "MetricName": "tma_itlb",
28*2bb3fbadSZhengjun Xing        "ScaleUnit": "100%"
29*2bb3fbadSZhengjun Xing    },
30*2bb3fbadSZhengjun Xing    {
31*2bb3fbadSZhengjun Xing        "BriefDescription": "Counts the number of issue slots  that were not delivered by the frontend due to BACLEARS, which occurs when the Branch Target Buffer (BTB) prediction or lack thereof, was corrected by a later branch predictor in the frontend",
32*2bb3fbadSZhengjun Xing        "MetricExpr": "TOPDOWN_FE_BOUND.BRANCH_DETECT / SLOTS",
33*2bb3fbadSZhengjun Xing        "MetricGroup": "TopdownL3;tma_frontend_latency_group",
34*2bb3fbadSZhengjun Xing        "MetricName": "tma_branch_detect",
35*2bb3fbadSZhengjun Xing        "PublicDescription": "Counts the number of issue slots  that were not delivered by the frontend due to BACLEARS, which occurs when the Branch Target Buffer (BTB) prediction or lack thereof, was corrected by a later branch predictor in the frontend. Includes BACLEARS due to all branch types including conditional and unconditional jumps, returns, and indirect branches.",
36*2bb3fbadSZhengjun Xing        "ScaleUnit": "100%"
37*2bb3fbadSZhengjun Xing    },
38*2bb3fbadSZhengjun Xing    {
39*2bb3fbadSZhengjun Xing        "BriefDescription": "Counts the number of issue slots  that were not delivered by the frontend due to BTCLEARS, which occurs when the Branch Target Buffer (BTB) predicts a taken branch.",
40*2bb3fbadSZhengjun Xing        "MetricExpr": "TOPDOWN_FE_BOUND.BRANCH_RESTEER / SLOTS",
41*2bb3fbadSZhengjun Xing        "MetricGroup": "TopdownL3;tma_frontend_latency_group",
42*2bb3fbadSZhengjun Xing        "MetricName": "tma_branch_resteer",
43*2bb3fbadSZhengjun Xing        "ScaleUnit": "100%"
44*2bb3fbadSZhengjun Xing    },
45*2bb3fbadSZhengjun Xing    {
46*2bb3fbadSZhengjun Xing        "BriefDescription": "Counts the number of issue slots  that were not delivered by the frontend due to frontend bandwidth restrictions due to decode, predecode, cisc, and other limitations.",
47*2bb3fbadSZhengjun Xing        "MetricExpr": "TOPDOWN_FE_BOUND.FRONTEND_BANDWIDTH / SLOTS",
48*2bb3fbadSZhengjun Xing        "MetricGroup": "TopdownL2;tma_frontend_bound_group",
49*2bb3fbadSZhengjun Xing        "MetricName": "tma_frontend_bandwidth",
50*2bb3fbadSZhengjun Xing        "ScaleUnit": "100%"
51*2bb3fbadSZhengjun Xing    },
52*2bb3fbadSZhengjun Xing    {
53*2bb3fbadSZhengjun Xing        "BriefDescription": "Counts the number of issue slots  that were not delivered by the frontend due to the microcode sequencer (MS).",
54*2bb3fbadSZhengjun Xing        "MetricExpr": "TOPDOWN_FE_BOUND.CISC / SLOTS",
55*2bb3fbadSZhengjun Xing        "MetricGroup": "TopdownL3;tma_frontend_bandwidth_group",
56*2bb3fbadSZhengjun Xing        "MetricName": "tma_cisc",
57*2bb3fbadSZhengjun Xing        "ScaleUnit": "100%"
58*2bb3fbadSZhengjun Xing    },
59*2bb3fbadSZhengjun Xing    {
60*2bb3fbadSZhengjun Xing        "BriefDescription": "Counts the number of issue slots  that were not delivered by the frontend due to decode stalls.",
61*2bb3fbadSZhengjun Xing        "MetricExpr": "TOPDOWN_FE_BOUND.DECODE / SLOTS",
62*2bb3fbadSZhengjun Xing        "MetricGroup": "TopdownL3;tma_frontend_bandwidth_group",
63*2bb3fbadSZhengjun Xing        "MetricName": "tma_decode",
64*2bb3fbadSZhengjun Xing        "ScaleUnit": "100%"
65*2bb3fbadSZhengjun Xing    },
66*2bb3fbadSZhengjun Xing    {
67*2bb3fbadSZhengjun Xing        "BriefDescription": "Counts the number of issue slots  that were not delivered by the frontend due to wrong predecodes.",
68*2bb3fbadSZhengjun Xing        "MetricExpr": "TOPDOWN_FE_BOUND.PREDECODE / SLOTS",
69*2bb3fbadSZhengjun Xing        "MetricGroup": "TopdownL3;tma_frontend_bandwidth_group",
70*2bb3fbadSZhengjun Xing        "MetricName": "tma_predecode",
71*2bb3fbadSZhengjun Xing        "ScaleUnit": "100%"
72*2bb3fbadSZhengjun Xing    },
73*2bb3fbadSZhengjun Xing    {
74*2bb3fbadSZhengjun Xing        "BriefDescription": "Counts the number of issue slots  that were not delivered by the frontend due to other common frontend stalls not categorized.",
75*2bb3fbadSZhengjun Xing        "MetricExpr": "TOPDOWN_FE_BOUND.OTHER / SLOTS",
76*2bb3fbadSZhengjun Xing        "MetricGroup": "TopdownL3;tma_frontend_bandwidth_group",
77*2bb3fbadSZhengjun Xing        "MetricName": "tma_other_fb",
78*2bb3fbadSZhengjun Xing        "ScaleUnit": "100%"
79*2bb3fbadSZhengjun Xing    },
80*2bb3fbadSZhengjun Xing    {
81*2bb3fbadSZhengjun Xing        "BriefDescription": "Counts the total number of issue slots that were not consumed by the backend because allocation is stalled due to a mispredicted jump or a machine clear",
82*2bb3fbadSZhengjun Xing        "MetricExpr": "(SLOTS - (TOPDOWN_FE_BOUND.ALL + TOPDOWN_BE_BOUND.ALL + TOPDOWN_RETIRING.ALL)) / SLOTS",
83*2bb3fbadSZhengjun Xing        "MetricGroup": "TopdownL1",
84*2bb3fbadSZhengjun Xing        "MetricName": "tma_bad_speculation",
85*2bb3fbadSZhengjun Xing        "PublicDescription": "Counts the total number of issue slots that were not consumed by the backend because allocation is stalled due to a mispredicted jump or a machine clear. Only issue slots wasted due to fast nukes such as memory ordering nukes are counted. Other nukes are not accounted for. Counts all issue slots blocked during this recovery window including relevant microcode flows and while uops are not yet available in the instruction queue (IQ). Also includes the issue slots that were consumed by the backend but were thrown away because they were younger than the mispredict or machine clear.",
86*2bb3fbadSZhengjun Xing        "ScaleUnit": "100%"
87*2bb3fbadSZhengjun Xing    },
88*2bb3fbadSZhengjun Xing    {
89*2bb3fbadSZhengjun Xing        "BriefDescription": "Counts the number of issue slots  that were not consumed by the backend due to branch mispredicts.",
90*2bb3fbadSZhengjun Xing        "MetricExpr": "TOPDOWN_BAD_SPECULATION.MISPREDICT / SLOTS",
91*2bb3fbadSZhengjun Xing        "MetricGroup": "TopdownL2;tma_bad_speculation_group",
92*2bb3fbadSZhengjun Xing        "MetricName": "tma_branch_mispredicts",
93*2bb3fbadSZhengjun Xing        "ScaleUnit": "100%"
94*2bb3fbadSZhengjun Xing    },
95*2bb3fbadSZhengjun Xing    {
96*2bb3fbadSZhengjun Xing        "BriefDescription": "Counts the total number of issue slots that were not consumed by the backend because allocation is stalled due to a machine clear (nuke) of any kind including memory ordering and memory disambiguation.",
97*2bb3fbadSZhengjun Xing        "MetricExpr": "TOPDOWN_BAD_SPECULATION.MACHINE_CLEARS / SLOTS",
98*2bb3fbadSZhengjun Xing        "MetricGroup": "TopdownL2;tma_bad_speculation_group",
99*2bb3fbadSZhengjun Xing        "MetricName": "tma_machine_clears",
100*2bb3fbadSZhengjun Xing        "ScaleUnit": "100%"
101*2bb3fbadSZhengjun Xing    },
102*2bb3fbadSZhengjun Xing    {
103*2bb3fbadSZhengjun Xing        "BriefDescription": "Counts the number of issue slots  that were not consumed by the backend due to a machine clear (slow nuke).",
104*2bb3fbadSZhengjun Xing        "MetricExpr": "TOPDOWN_BAD_SPECULATION.NUKE / SLOTS",
105*2bb3fbadSZhengjun Xing        "MetricGroup": "TopdownL3;tma_machine_clears_group",
106*2bb3fbadSZhengjun Xing        "MetricName": "tma_nuke",
107*2bb3fbadSZhengjun Xing        "ScaleUnit": "100%"
108*2bb3fbadSZhengjun Xing    },
109*2bb3fbadSZhengjun Xing    {
110*2bb3fbadSZhengjun Xing        "BriefDescription": "Counts the number of machine clears relative to the number of nuke slots due to SMC. ",
111*2bb3fbadSZhengjun Xing        "MetricExpr": "tma_nuke * (MACHINE_CLEARS.SMC / MACHINE_CLEARS.SLOW)",
112*2bb3fbadSZhengjun Xing        "MetricGroup": "TopdownL4;tma_nuke_group",
113*2bb3fbadSZhengjun Xing        "MetricName": "tma_smc",
114*2bb3fbadSZhengjun Xing        "ScaleUnit": "100%"
115*2bb3fbadSZhengjun Xing    },
116*2bb3fbadSZhengjun Xing    {
117*2bb3fbadSZhengjun Xing        "BriefDescription": "Counts the number of machine clears relative to the number of nuke slots due to memory ordering. ",
118*2bb3fbadSZhengjun Xing        "MetricExpr": "tma_nuke * (MACHINE_CLEARS.MEMORY_ORDERING / MACHINE_CLEARS.SLOW)",
119*2bb3fbadSZhengjun Xing        "MetricGroup": "TopdownL4;tma_nuke_group",
120*2bb3fbadSZhengjun Xing        "MetricName": "tma_memory_ordering",
121*2bb3fbadSZhengjun Xing        "ScaleUnit": "100%"
122*2bb3fbadSZhengjun Xing    },
123*2bb3fbadSZhengjun Xing    {
124*2bb3fbadSZhengjun Xing        "BriefDescription": "Counts the number of machine clears relative to the number of nuke slots due to FP assists. ",
125*2bb3fbadSZhengjun Xing        "MetricExpr": "tma_nuke * (MACHINE_CLEARS.FP_ASSIST / MACHINE_CLEARS.SLOW)",
126*2bb3fbadSZhengjun Xing        "MetricGroup": "TopdownL4;tma_nuke_group",
127*2bb3fbadSZhengjun Xing        "MetricName": "tma_fp_assist",
128*2bb3fbadSZhengjun Xing        "ScaleUnit": "100%"
129*2bb3fbadSZhengjun Xing    },
130*2bb3fbadSZhengjun Xing    {
131*2bb3fbadSZhengjun Xing        "BriefDescription": "Counts the number of machine clears relative to the number of nuke slots due to memory disambiguation. ",
132*2bb3fbadSZhengjun Xing        "MetricExpr": "tma_nuke * (MACHINE_CLEARS.DISAMBIGUATION / MACHINE_CLEARS.SLOW)",
133*2bb3fbadSZhengjun Xing        "MetricGroup": "TopdownL4;tma_nuke_group",
134*2bb3fbadSZhengjun Xing        "MetricName": "tma_disambiguation",
135*2bb3fbadSZhengjun Xing        "ScaleUnit": "100%"
136*2bb3fbadSZhengjun Xing    },
137*2bb3fbadSZhengjun Xing    {
138*2bb3fbadSZhengjun Xing        "BriefDescription": "Counts the number of machine clears relative to the number of nuke slots due to page faults. ",
139*2bb3fbadSZhengjun Xing        "MetricExpr": "tma_nuke * (MACHINE_CLEARS.PAGE_FAULT / MACHINE_CLEARS.SLOW)",
140*2bb3fbadSZhengjun Xing        "MetricGroup": "TopdownL4;tma_nuke_group",
141*2bb3fbadSZhengjun Xing        "MetricName": "tma_page_fault",
142*2bb3fbadSZhengjun Xing        "ScaleUnit": "100%"
143*2bb3fbadSZhengjun Xing    },
144*2bb3fbadSZhengjun Xing    {
145*2bb3fbadSZhengjun Xing        "BriefDescription": "Counts the number of issue slots  that were not consumed by the backend due to a machine clear classified as a fast nuke due to memory ordering, memory disambiguation and memory renaming.",
146*2bb3fbadSZhengjun Xing        "MetricExpr": "TOPDOWN_BAD_SPECULATION.FASTNUKE / SLOTS",
147*2bb3fbadSZhengjun Xing        "MetricGroup": "TopdownL3;tma_machine_clears_group",
148*2bb3fbadSZhengjun Xing        "MetricName": "tma_fast_nuke",
149*2bb3fbadSZhengjun Xing        "ScaleUnit": "100%"
150*2bb3fbadSZhengjun Xing    },
151*2bb3fbadSZhengjun Xing    {
152*2bb3fbadSZhengjun Xing        "BriefDescription": "Counts the total number of issue slots  that were not consumed by the backend due to backend stalls",
153*2bb3fbadSZhengjun Xing        "MetricExpr": "TOPDOWN_BE_BOUND.ALL / SLOTS",
154*2bb3fbadSZhengjun Xing        "MetricGroup": "TopdownL1",
155*2bb3fbadSZhengjun Xing        "MetricName": "tma_backend_bound",
156*2bb3fbadSZhengjun Xing        "PublicDescription": "Counts the total number of issue slots  that were not consumed by the backend due to backend stalls.  Note that uops must be available for consumption in order for this event to count.  If a uop is not available (IQ is empty), this event will not count.   The rest of these subevents count backend stalls, in cycles, due to an outstanding request which is memory bound vs core bound.   The subevents are not slot based events and therefore can not be precisely added or subtracted from the Backend_Bound_Aux subevents which are slot based.",
157*2bb3fbadSZhengjun Xing        "ScaleUnit": "100%"
158*2bb3fbadSZhengjun Xing    },
159*2bb3fbadSZhengjun Xing    {
160*2bb3fbadSZhengjun Xing        "BriefDescription": "Counts the number of cycles due to backend bound stalls that are core execution bound and not attributed to outstanding demand load or store stalls. ",
161*2bb3fbadSZhengjun Xing        "MetricExpr": "max(0, tma_backend_bound - tma_load_store_bound)",
162*2bb3fbadSZhengjun Xing        "MetricGroup": "TopdownL2;tma_backend_bound_group",
163*2bb3fbadSZhengjun Xing        "MetricName": "tma_core_bound",
164*2bb3fbadSZhengjun Xing        "ScaleUnit": "100%"
165*2bb3fbadSZhengjun Xing    },
166*2bb3fbadSZhengjun Xing    {
167*2bb3fbadSZhengjun Xing        "BriefDescription": "Counts the number of cycles the core is stalled due to stores or loads. ",
168*2bb3fbadSZhengjun Xing        "MetricExpr": "min((TOPDOWN_BE_BOUND.ALL / SLOTS), (LD_HEAD.ANY_AT_RET / CLKS) + tma_store_bound)",
169*2bb3fbadSZhengjun Xing        "MetricGroup": "TopdownL2;tma_backend_bound_group",
170*2bb3fbadSZhengjun Xing        "MetricName": "tma_load_store_bound",
171*2bb3fbadSZhengjun Xing        "ScaleUnit": "100%"
172*2bb3fbadSZhengjun Xing    },
173*2bb3fbadSZhengjun Xing    {
174*2bb3fbadSZhengjun Xing        "BriefDescription": "Counts the number of cycles the core is stalled due to store buffer full.",
175*2bb3fbadSZhengjun Xing        "MetricExpr": "tma_mem_scheduler * (MEM_SCHEDULER_BLOCK.ST_BUF / MEM_SCHEDULER_BLOCK.ALL)",
176*2bb3fbadSZhengjun Xing        "MetricGroup": "TopdownL3;tma_load_store_bound_group",
177*2bb3fbadSZhengjun Xing        "MetricName": "tma_store_bound",
178*2bb3fbadSZhengjun Xing        "ScaleUnit": "100%"
179*2bb3fbadSZhengjun Xing    },
180*2bb3fbadSZhengjun Xing    {
181*2bb3fbadSZhengjun Xing        "BriefDescription": "Counts the number of cycles that the oldest load of the load buffer is stalled at retirement due to a load block.",
182*2bb3fbadSZhengjun Xing        "MetricExpr": "LD_HEAD.L1_BOUND_AT_RET / CLKS",
183*2bb3fbadSZhengjun Xing        "MetricGroup": "TopdownL3;tma_load_store_bound_group",
184*2bb3fbadSZhengjun Xing        "MetricName": "tma_l1_bound",
185*2bb3fbadSZhengjun Xing        "ScaleUnit": "100%"
186*2bb3fbadSZhengjun Xing    },
187*2bb3fbadSZhengjun Xing    {
188*2bb3fbadSZhengjun Xing        "BriefDescription": "Counts the number of cycles that the oldest load of the load buffer is stalled at retirement due to a store forward block.",
189*2bb3fbadSZhengjun Xing        "MetricExpr": "LD_HEAD.ST_ADDR_AT_RET / CLKS",
190*2bb3fbadSZhengjun Xing        "MetricGroup": "TopdownL4;tma_l1_bound_group",
191*2bb3fbadSZhengjun Xing        "MetricName": "tma_store_fwd",
192*2bb3fbadSZhengjun Xing        "ScaleUnit": "100%"
193*2bb3fbadSZhengjun Xing    },
194*2bb3fbadSZhengjun Xing    {
195*2bb3fbadSZhengjun Xing        "BriefDescription": "Counts the number of cycles that the oldest load of the load buffer is stalled at retirement due to a first level TLB miss.",
196*2bb3fbadSZhengjun Xing        "MetricExpr": "LD_HEAD.DTLB_MISS_AT_RET / CLKS",
197*2bb3fbadSZhengjun Xing        "MetricGroup": "TopdownL4;tma_l1_bound_group",
198*2bb3fbadSZhengjun Xing        "MetricName": "tma_stlb_hit",
199*2bb3fbadSZhengjun Xing        "ScaleUnit": "100%"
200*2bb3fbadSZhengjun Xing    },
201*2bb3fbadSZhengjun Xing    {
202*2bb3fbadSZhengjun Xing        "BriefDescription": "Counts the number of cycles that the oldest load of the load buffer is stalled at retirement due to a second level TLB miss requiring a page walk.",
203*2bb3fbadSZhengjun Xing        "MetricExpr": "LD_HEAD.PGWALK_AT_RET / CLKS",
204*2bb3fbadSZhengjun Xing        "MetricGroup": "TopdownL4;tma_l1_bound_group",
205*2bb3fbadSZhengjun Xing        "MetricName": "tma_stlb_miss",
206*2bb3fbadSZhengjun Xing        "ScaleUnit": "100%"
207*2bb3fbadSZhengjun Xing    },
208*2bb3fbadSZhengjun Xing    {
209*2bb3fbadSZhengjun Xing        "BriefDescription": "Counts the number of cycles that the oldest load of the load buffer is stalled at retirement due to a number of other load blocks.",
210*2bb3fbadSZhengjun Xing        "MetricExpr": "LD_HEAD.OTHER_AT_RET / CLKS",
211*2bb3fbadSZhengjun Xing        "MetricGroup": "TopdownL4;tma_l1_bound_group",
212*2bb3fbadSZhengjun Xing        "MetricName": "tma_other_l1",
213*2bb3fbadSZhengjun Xing        "ScaleUnit": "100%"
214*2bb3fbadSZhengjun Xing    },
215*2bb3fbadSZhengjun Xing    {
216*2bb3fbadSZhengjun Xing        "BriefDescription": "Counts the number of cycles a core is stalled due to a demand load which hit in the L2 Cache.",
217*2bb3fbadSZhengjun Xing        "MetricExpr": "(MEM_BOUND_STALLS.LOAD_L2_HIT / CLKS) - (MEM_BOUND_STALLS_AT_RET_CORRECTION * MEM_BOUND_STALLS.LOAD_L2_HIT / MEM_BOUND_STALLS.LOAD)",
218*2bb3fbadSZhengjun Xing        "MetricGroup": "TopdownL3;tma_load_store_bound_group",
219*2bb3fbadSZhengjun Xing        "MetricName": "tma_l2_bound",
220*2bb3fbadSZhengjun Xing        "ScaleUnit": "100%"
221*2bb3fbadSZhengjun Xing    },
222*2bb3fbadSZhengjun Xing    {
223*2bb3fbadSZhengjun Xing        "BriefDescription": "Counts the number of cycles a core is stalled due to a demand load which hit in the Last Level Cache (LLC) or other core with HITE/F/M.",
224*2bb3fbadSZhengjun Xing        "MetricExpr": "(MEM_BOUND_STALLS.LOAD_LLC_HIT / CLKS) - (MEM_BOUND_STALLS_AT_RET_CORRECTION * MEM_BOUND_STALLS.LOAD_LLC_HIT / MEM_BOUND_STALLS.LOAD)",
225*2bb3fbadSZhengjun Xing        "MetricGroup": "TopdownL3;tma_load_store_bound_group",
226*2bb3fbadSZhengjun Xing        "MetricName": "tma_l3_bound",
227*2bb3fbadSZhengjun Xing        "ScaleUnit": "100%"
228*2bb3fbadSZhengjun Xing    },
229*2bb3fbadSZhengjun Xing    {
230*2bb3fbadSZhengjun Xing        "BriefDescription": "Counts the number of cycles the core is stalled due to a demand load miss which hit in DRAM or MMIO (Non-DRAM).",
231*2bb3fbadSZhengjun Xing        "MetricExpr": "(MEM_BOUND_STALLS.LOAD_DRAM_HIT / CLKS) - (MEM_BOUND_STALLS_AT_RET_CORRECTION * MEM_BOUND_STALLS.LOAD_DRAM_HIT / MEM_BOUND_STALLS.LOAD)",
232*2bb3fbadSZhengjun Xing        "MetricGroup": "TopdownL3;tma_load_store_bound_group",
233*2bb3fbadSZhengjun Xing        "MetricName": "tma_dram_bound",
234*2bb3fbadSZhengjun Xing        "ScaleUnit": "100%"
235*2bb3fbadSZhengjun Xing    },
236*2bb3fbadSZhengjun Xing    {
237*2bb3fbadSZhengjun Xing        "BriefDescription": "Counts the number of cycles the core is stalled due to a demand load miss which hits in the L2, LLC, DRAM or MMIO (Non-DRAM) but could not be correctly attributed or cycles in which the load miss is waiting on a request buffer.",
238*2bb3fbadSZhengjun Xing        "MetricExpr": "max(0, tma_load_store_bound - (tma_store_bound + tma_l1_bound + tma_l2_bound + tma_l3_bound + tma_dram_bound))",
239*2bb3fbadSZhengjun Xing        "MetricGroup": "TopdownL3;tma_load_store_bound_group",
240*2bb3fbadSZhengjun Xing        "MetricName": "tma_other_load_store",
241*2bb3fbadSZhengjun Xing        "ScaleUnit": "100%"
242*2bb3fbadSZhengjun Xing    },
243*2bb3fbadSZhengjun Xing    {
244*2bb3fbadSZhengjun Xing        "BriefDescription": "Counts the total number of issue slots  that were not consumed by the backend due to backend stalls",
245*2bb3fbadSZhengjun Xing        "MetricExpr": "tma_backend_bound",
246*2bb3fbadSZhengjun Xing        "MetricGroup": "TopdownL1",
247*2bb3fbadSZhengjun Xing        "MetricName": "tma_backend_bound_aux",
248*2bb3fbadSZhengjun Xing        "PublicDescription": "Counts the total number of issue slots  that were not consumed by the backend due to backend stalls.  Note that UOPS must be available for consumption in order for this event to count.  If a uop is not available (IQ is empty), this event will not count.  All of these subevents count backend stalls, in slots, due to a resource limitation.   These are not cycle based events and therefore can not be precisely added or subtracted from the Backend_Bound subevents which are cycle based.  These subevents are supplementary to Backend_Bound and can be used to analyze results from a resource perspective at allocation.  ",
249*2bb3fbadSZhengjun Xing        "ScaleUnit": "100%"
250*2bb3fbadSZhengjun Xing    },
251*2bb3fbadSZhengjun Xing    {
252*2bb3fbadSZhengjun Xing        "BriefDescription": "Counts the total number of issue slots  that were not consumed by the backend due to backend stalls",
253*2bb3fbadSZhengjun Xing        "MetricExpr": "tma_backend_bound",
254*2bb3fbadSZhengjun Xing        "MetricGroup": "TopdownL2;tma_backend_bound_aux_group",
255*2bb3fbadSZhengjun Xing        "MetricName": "tma_resource_bound",
256*2bb3fbadSZhengjun Xing        "PublicDescription": "Counts the total number of issue slots  that were not consumed by the backend due to backend stalls.  Note that uops must be available for consumption in order for this event to count.  If a uop is not available (IQ is empty), this event will not count. ",
257*2bb3fbadSZhengjun Xing        "ScaleUnit": "100%"
258*2bb3fbadSZhengjun Xing    },
259*2bb3fbadSZhengjun Xing    {
260*2bb3fbadSZhengjun Xing        "BriefDescription": "Counts the number of issue slots  that were not consumed by the backend due to memory reservation stalls in which a scheduler is not able to accept uops.",
261*2bb3fbadSZhengjun Xing        "MetricExpr": "TOPDOWN_BE_BOUND.MEM_SCHEDULER / SLOTS",
262*2bb3fbadSZhengjun Xing        "MetricGroup": "TopdownL3;tma_resource_bound_group",
263*2bb3fbadSZhengjun Xing        "MetricName": "tma_mem_scheduler",
264*2bb3fbadSZhengjun Xing        "ScaleUnit": "100%"
265*2bb3fbadSZhengjun Xing    },
266*2bb3fbadSZhengjun Xing    {
267*2bb3fbadSZhengjun Xing        "BriefDescription": "Counts the number of cycles, relative to the number of mem_scheduler slots, in which uops are blocked due to store buffer full",
268*2bb3fbadSZhengjun Xing        "MetricExpr": "tma_mem_scheduler * (MEM_SCHEDULER_BLOCK.ST_BUF / MEM_SCHEDULER_BLOCK.ALL)",
269*2bb3fbadSZhengjun Xing        "MetricGroup": "TopdownL4;tma_mem_scheduler_group",
270*2bb3fbadSZhengjun Xing        "MetricName": "tma_st_buffer",
271*2bb3fbadSZhengjun Xing        "ScaleUnit": "100%"
272*2bb3fbadSZhengjun Xing    },
273*2bb3fbadSZhengjun Xing    {
274*2bb3fbadSZhengjun Xing        "BriefDescription": "Counts the number of cycles, relative to the number of mem_scheduler slots, in which uops are blocked due to load buffer full",
275*2bb3fbadSZhengjun Xing        "MetricExpr": "tma_mem_scheduler * MEM_SCHEDULER_BLOCK.LD_BUF / MEM_SCHEDULER_BLOCK.ALL",
276*2bb3fbadSZhengjun Xing        "MetricGroup": "TopdownL4;tma_mem_scheduler_group",
277*2bb3fbadSZhengjun Xing        "MetricName": "tma_ld_buffer",
278*2bb3fbadSZhengjun Xing        "ScaleUnit": "100%"
279*2bb3fbadSZhengjun Xing    },
280*2bb3fbadSZhengjun Xing    {
281*2bb3fbadSZhengjun Xing        "BriefDescription": "Counts the number of cycles, relative to the number of mem_scheduler slots, in which uops are blocked due to RSV full relative ",
282*2bb3fbadSZhengjun Xing        "MetricExpr": "tma_mem_scheduler * MEM_SCHEDULER_BLOCK.RSV / MEM_SCHEDULER_BLOCK.ALL",
283*2bb3fbadSZhengjun Xing        "MetricGroup": "TopdownL4;tma_mem_scheduler_group",
284*2bb3fbadSZhengjun Xing        "MetricName": "tma_rsv",
285*2bb3fbadSZhengjun Xing        "ScaleUnit": "100%"
286*2bb3fbadSZhengjun Xing    },
287*2bb3fbadSZhengjun Xing    {
288*2bb3fbadSZhengjun Xing        "BriefDescription": "Counts the number of issue slots  that were not consumed by the backend due to IEC or FPC RAT stalls, which can be due to FIQ or IEC reservation stalls in which the integer, floating point or SIMD scheduler is not able to accept uops.",
289*2bb3fbadSZhengjun Xing        "MetricExpr": "TOPDOWN_BE_BOUND.NON_MEM_SCHEDULER / SLOTS",
290*2bb3fbadSZhengjun Xing        "MetricGroup": "TopdownL3;tma_resource_bound_group",
291*2bb3fbadSZhengjun Xing        "MetricName": "tma_non_mem_scheduler",
292*2bb3fbadSZhengjun Xing        "ScaleUnit": "100%"
293*2bb3fbadSZhengjun Xing    },
294*2bb3fbadSZhengjun Xing    {
295*2bb3fbadSZhengjun Xing        "BriefDescription": "Counts the number of issue slots  that were not consumed by the backend due to the physical register file unable to accept an entry (marble stalls).",
296*2bb3fbadSZhengjun Xing        "MetricExpr": "TOPDOWN_BE_BOUND.REGISTER / SLOTS",
297*2bb3fbadSZhengjun Xing        "MetricGroup": "TopdownL3;tma_resource_bound_group",
298*2bb3fbadSZhengjun Xing        "MetricName": "tma_register",
299*2bb3fbadSZhengjun Xing        "ScaleUnit": "100%"
300*2bb3fbadSZhengjun Xing    },
301*2bb3fbadSZhengjun Xing    {
302*2bb3fbadSZhengjun Xing        "BriefDescription": "Counts the number of issue slots  that were not consumed by the backend due to the reorder buffer being full (ROB stalls).",
303*2bb3fbadSZhengjun Xing        "MetricExpr": "TOPDOWN_BE_BOUND.REORDER_BUFFER / SLOTS",
304*2bb3fbadSZhengjun Xing        "MetricGroup": "TopdownL3;tma_resource_bound_group",
305*2bb3fbadSZhengjun Xing        "MetricName": "tma_reorder_buffer",
306*2bb3fbadSZhengjun Xing        "ScaleUnit": "100%"
307*2bb3fbadSZhengjun Xing    },
308*2bb3fbadSZhengjun Xing    {
309*2bb3fbadSZhengjun Xing        "BriefDescription": "Counts the number of issue slots  that were not consumed by the backend due to certain allocation restrictions.",
310*2bb3fbadSZhengjun Xing        "MetricExpr": "TOPDOWN_BE_BOUND.ALLOC_RESTRICTIONS / SLOTS",
311*2bb3fbadSZhengjun Xing        "MetricGroup": "TopdownL3;tma_resource_bound_group",
312*2bb3fbadSZhengjun Xing        "MetricName": "tma_alloc_restriction",
313*2bb3fbadSZhengjun Xing        "ScaleUnit": "100%"
314*2bb3fbadSZhengjun Xing    },
315*2bb3fbadSZhengjun Xing    {
316*2bb3fbadSZhengjun Xing        "BriefDescription": "Counts the number of issue slots  that were not consumed by the backend due to scoreboards from the instruction queue (IQ), jump execution unit (JEU), or microcode sequencer (MS).",
317*2bb3fbadSZhengjun Xing        "MetricExpr": "TOPDOWN_BE_BOUND.SERIALIZATION / SLOTS",
318*2bb3fbadSZhengjun Xing        "MetricGroup": "TopdownL3;tma_resource_bound_group",
319*2bb3fbadSZhengjun Xing        "MetricName": "tma_serialization",
320*2bb3fbadSZhengjun Xing        "ScaleUnit": "100%"
321*2bb3fbadSZhengjun Xing    },
322*2bb3fbadSZhengjun Xing    {
323*2bb3fbadSZhengjun Xing        "BriefDescription": "Counts the numer of issue slots  that result in retirement slots. ",
324*2bb3fbadSZhengjun Xing        "MetricExpr": "TOPDOWN_RETIRING.ALL / SLOTS",
325*2bb3fbadSZhengjun Xing        "MetricGroup": "TopdownL1",
326*2bb3fbadSZhengjun Xing        "MetricName": "tma_retiring",
327*2bb3fbadSZhengjun Xing        "ScaleUnit": "100%"
328*2bb3fbadSZhengjun Xing    },
329*2bb3fbadSZhengjun Xing    {
330*2bb3fbadSZhengjun Xing        "BriefDescription": "Counts the number of uops that are not from the microsequencer. ",
331*2bb3fbadSZhengjun Xing        "MetricExpr": "(TOPDOWN_RETIRING.ALL - UOPS_RETIRED.MS) / SLOTS",
332*2bb3fbadSZhengjun Xing        "MetricGroup": "TopdownL2;tma_retiring_group",
333*2bb3fbadSZhengjun Xing        "MetricName": "tma_base",
334*2bb3fbadSZhengjun Xing        "ScaleUnit": "100%"
335*2bb3fbadSZhengjun Xing    },
336*2bb3fbadSZhengjun Xing    {
337*2bb3fbadSZhengjun Xing        "BriefDescription": "Counts the number of floating point operations per uop with all default weighting.",
338*2bb3fbadSZhengjun Xing        "MetricExpr": "UOPS_RETIRED.FPDIV / SLOTS",
339*2bb3fbadSZhengjun Xing        "MetricGroup": "TopdownL3;tma_base_group",
340*2bb3fbadSZhengjun Xing        "MetricName": "tma_fp_uops",
341*2bb3fbadSZhengjun Xing        "ScaleUnit": "100%"
342*2bb3fbadSZhengjun Xing    },
343*2bb3fbadSZhengjun Xing    {
344*2bb3fbadSZhengjun Xing        "BriefDescription": "Counts the number of uops retired excluding ms and fp div uops.",
345*2bb3fbadSZhengjun Xing        "MetricExpr": "(TOPDOWN_RETIRING.ALL - UOPS_RETIRED.MS - UOPS_RETIRED.FPDIV) / SLOTS",
346*2bb3fbadSZhengjun Xing        "MetricGroup": "TopdownL3;tma_base_group",
347*2bb3fbadSZhengjun Xing        "MetricName": "tma_other_ret",
348*2bb3fbadSZhengjun Xing        "ScaleUnit": "100%"
349*2bb3fbadSZhengjun Xing    },
350*2bb3fbadSZhengjun Xing    {
351*2bb3fbadSZhengjun Xing        "BriefDescription": "Counts the number of uops that are from the complex flows issued by the micro-sequencer (MS)",
352*2bb3fbadSZhengjun Xing        "MetricExpr": "UOPS_RETIRED.MS / SLOTS",
353*2bb3fbadSZhengjun Xing        "MetricGroup": "TopdownL2;tma_retiring_group",
354*2bb3fbadSZhengjun Xing        "MetricName": "tma_ms_uops",
355*2bb3fbadSZhengjun Xing        "PublicDescription": "Counts the number of uops that are from the complex flows issued by the micro-sequencer (MS).  This includes uops from flows due to complex instructions, faults, assists, and inserted flows.",
356*2bb3fbadSZhengjun Xing        "ScaleUnit": "100%"
357*2bb3fbadSZhengjun Xing    },
358*2bb3fbadSZhengjun Xing    {
359*2bb3fbadSZhengjun Xing        "BriefDescription": "",
360*2bb3fbadSZhengjun Xing        "MetricExpr": "CPU_CLK_UNHALTED.CORE",
361*2bb3fbadSZhengjun Xing        "MetricName": "CLKS"
362*2bb3fbadSZhengjun Xing    },
363*2bb3fbadSZhengjun Xing    {
364*2bb3fbadSZhengjun Xing        "BriefDescription": "",
365*2bb3fbadSZhengjun Xing        "MetricExpr": "CPU_CLK_UNHALTED.CORE_P",
366*2bb3fbadSZhengjun Xing        "MetricName": "CLKS_P"
367*2bb3fbadSZhengjun Xing    },
368*2bb3fbadSZhengjun Xing    {
369*2bb3fbadSZhengjun Xing        "BriefDescription": "",
370*2bb3fbadSZhengjun Xing        "MetricExpr": "5 * CLKS",
371*2bb3fbadSZhengjun Xing        "MetricName": "SLOTS"
372*2bb3fbadSZhengjun Xing    },
373*2bb3fbadSZhengjun Xing    {
374*2bb3fbadSZhengjun Xing        "BriefDescription": "Instructions Per Cycle",
375*2bb3fbadSZhengjun Xing        "MetricExpr": "INST_RETIRED.ANY / CLKS",
376*2bb3fbadSZhengjun Xing        "MetricName": "IPC"
377*2bb3fbadSZhengjun Xing    },
378*2bb3fbadSZhengjun Xing    {
379*2bb3fbadSZhengjun Xing        "BriefDescription": "Cycles Per Instruction",
380*2bb3fbadSZhengjun Xing        "MetricExpr": "CLKS / INST_RETIRED.ANY",
381*2bb3fbadSZhengjun Xing        "MetricName": "CPI"
382*2bb3fbadSZhengjun Xing    },
383*2bb3fbadSZhengjun Xing    {
384*2bb3fbadSZhengjun Xing        "BriefDescription": "Uops Per Instruction",
385*2bb3fbadSZhengjun Xing        "MetricExpr": "UOPS_RETIRED.ALL / INST_RETIRED.ANY",
386*2bb3fbadSZhengjun Xing        "MetricName": "UPI"
387*2bb3fbadSZhengjun Xing    },
388*2bb3fbadSZhengjun Xing    {
389*2bb3fbadSZhengjun Xing        "BriefDescription": "Percentage of total non-speculative loads with a store forward or unknown store address block",
390*2bb3fbadSZhengjun Xing        "MetricExpr": "100 * LD_BLOCKS.DATA_UNKNOWN / MEM_UOPS_RETIRED.ALL_LOADS",
391*2bb3fbadSZhengjun Xing        "MetricName": "Store_Fwd_Blocks"
392*2bb3fbadSZhengjun Xing    },
393*2bb3fbadSZhengjun Xing    {
394*2bb3fbadSZhengjun Xing        "BriefDescription": "Percentage of total non-speculative loads with a address aliasing block",
395*2bb3fbadSZhengjun Xing        "MetricExpr": "100 * LD_BLOCKS.4K_ALIAS / MEM_UOPS_RETIRED.ALL_LOADS",
396*2bb3fbadSZhengjun Xing        "MetricName": "Address_Alias_Blocks"
397*2bb3fbadSZhengjun Xing    },
398*2bb3fbadSZhengjun Xing    {
399*2bb3fbadSZhengjun Xing        "BriefDescription": "Percentage of total non-speculative loads that are splits",
400*2bb3fbadSZhengjun Xing        "MetricExpr": "100 * MEM_UOPS_RETIRED.SPLIT_LOADS / MEM_UOPS_RETIRED.ALL_LOADS",
401*2bb3fbadSZhengjun Xing        "MetricName": "Load_Splits"
402*2bb3fbadSZhengjun Xing    },
403*2bb3fbadSZhengjun Xing    {
404*2bb3fbadSZhengjun Xing        "BriefDescription": "Instructions per Branch (lower number means higher occurrence rate)",
405*2bb3fbadSZhengjun Xing        "MetricExpr": "INST_RETIRED.ANY / BR_INST_RETIRED.ALL_BRANCHES",
406*2bb3fbadSZhengjun Xing        "MetricName": "IpBranch"
407*2bb3fbadSZhengjun Xing    },
408*2bb3fbadSZhengjun Xing    {
409*2bb3fbadSZhengjun Xing        "BriefDescription": "Instruction per (near) call (lower number means higher occurrence rate)",
410*2bb3fbadSZhengjun Xing        "MetricExpr": "INST_RETIRED.ANY / BR_INST_RETIRED.CALL",
411*2bb3fbadSZhengjun Xing        "MetricName": "IpCall"
412*2bb3fbadSZhengjun Xing    },
413*2bb3fbadSZhengjun Xing    {
414*2bb3fbadSZhengjun Xing        "BriefDescription": "Instructions per Load",
415*2bb3fbadSZhengjun Xing        "MetricExpr": "INST_RETIRED.ANY / MEM_UOPS_RETIRED.ALL_LOADS",
416*2bb3fbadSZhengjun Xing        "MetricName": "IpLoad"
417*2bb3fbadSZhengjun Xing    },
418*2bb3fbadSZhengjun Xing    {
419*2bb3fbadSZhengjun Xing        "BriefDescription": "Instructions per Store",
420*2bb3fbadSZhengjun Xing        "MetricExpr": "INST_RETIRED.ANY / MEM_UOPS_RETIRED.ALL_STORES",
421*2bb3fbadSZhengjun Xing        "MetricName": "IpStore"
422*2bb3fbadSZhengjun Xing    },
423*2bb3fbadSZhengjun Xing    {
424*2bb3fbadSZhengjun Xing        "BriefDescription": "Number of Instructions per non-speculative Branch Misprediction",
425*2bb3fbadSZhengjun Xing        "MetricExpr": "INST_RETIRED.ANY / BR_MISP_RETIRED.ALL_BRANCHES",
426*2bb3fbadSZhengjun Xing        "MetricName": "IpMispredict"
427*2bb3fbadSZhengjun Xing    },
428*2bb3fbadSZhengjun Xing    {
429*2bb3fbadSZhengjun Xing        "BriefDescription": "Instructions per Far Branch",
430*2bb3fbadSZhengjun Xing        "MetricExpr": "INST_RETIRED.ANY / (BR_INST_RETIRED.FAR_BRANCH / 2)",
431*2bb3fbadSZhengjun Xing        "MetricName": "IpFarBranch"
432*2bb3fbadSZhengjun Xing    },
433*2bb3fbadSZhengjun Xing    {
434*2bb3fbadSZhengjun Xing        "BriefDescription": "Ratio of all branches which mispredict",
435*2bb3fbadSZhengjun Xing        "MetricExpr": "BR_MISP_RETIRED.ALL_BRANCHES / BR_INST_RETIRED.ALL_BRANCHES",
436*2bb3fbadSZhengjun Xing        "MetricName": "Branch_Mispredict_Ratio"
437*2bb3fbadSZhengjun Xing    },
438*2bb3fbadSZhengjun Xing    {
439*2bb3fbadSZhengjun Xing        "BriefDescription": "Ratio between Mispredicted branches and unknown branches",
440*2bb3fbadSZhengjun Xing        "MetricExpr": "BR_MISP_RETIRED.ALL_BRANCHES / BACLEARS.ANY",
441*2bb3fbadSZhengjun Xing        "MetricName": "Branch_Mispredict_to_Unknown_Branch_Ratio"
442*2bb3fbadSZhengjun Xing    },
443*2bb3fbadSZhengjun Xing    {
444*2bb3fbadSZhengjun Xing        "BriefDescription": "Percentage of all uops which are ucode ops",
445*2bb3fbadSZhengjun Xing        "MetricExpr": "100 * UOPS_RETIRED.MS / UOPS_RETIRED.ALL",
446*2bb3fbadSZhengjun Xing        "MetricName": "Microcode_Uop_Ratio"
447*2bb3fbadSZhengjun Xing    },
448*2bb3fbadSZhengjun Xing    {
449*2bb3fbadSZhengjun Xing        "BriefDescription": "Percentage of all uops which are FPDiv uops",
450*2bb3fbadSZhengjun Xing        "MetricExpr": "100 * UOPS_RETIRED.FPDIV / UOPS_RETIRED.ALL",
451*2bb3fbadSZhengjun Xing        "MetricName": "FPDiv_Uop_Ratio"
452*2bb3fbadSZhengjun Xing    },
453*2bb3fbadSZhengjun Xing    {
454*2bb3fbadSZhengjun Xing        "BriefDescription": "Percentage of all uops which are IDiv uops",
455*2bb3fbadSZhengjun Xing        "MetricExpr": "100 * UOPS_RETIRED.IDIV / UOPS_RETIRED.ALL",
456*2bb3fbadSZhengjun Xing        "MetricName": "IDiv_Uop_Ratio"
457*2bb3fbadSZhengjun Xing    },
458*2bb3fbadSZhengjun Xing    {
459*2bb3fbadSZhengjun Xing        "BriefDescription": "Percentage of all uops which are x87 uops",
460*2bb3fbadSZhengjun Xing        "MetricExpr": "100 * UOPS_RETIRED.X87 / UOPS_RETIRED.ALL",
461*2bb3fbadSZhengjun Xing        "MetricName": "X87_Uop_Ratio"
462*2bb3fbadSZhengjun Xing    },
463*2bb3fbadSZhengjun Xing    {
464*2bb3fbadSZhengjun Xing        "BriefDescription": "Average Frequency Utilization relative nominal frequency",
465*2bb3fbadSZhengjun Xing        "MetricExpr": "CLKS / CPU_CLK_UNHALTED.REF_TSC",
466*2bb3fbadSZhengjun Xing        "MetricName": "Turbo_Utilization"
467*2bb3fbadSZhengjun Xing    },
468*2bb3fbadSZhengjun Xing    {
469*2bb3fbadSZhengjun Xing        "BriefDescription": "Fraction of cycles spent in Kernel mode",
470*2bb3fbadSZhengjun Xing        "MetricExpr": "cpu@CPU_CLK_UNHALTED.CORE@k / CPU_CLK_UNHALTED.CORE",
471*2bb3fbadSZhengjun Xing        "MetricName": "Kernel_Utilization"
472*2bb3fbadSZhengjun Xing    },
473*2bb3fbadSZhengjun Xing    {
474*2bb3fbadSZhengjun Xing        "BriefDescription": "Average CPU Utilization",
475*2bb3fbadSZhengjun Xing        "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC / TSC",
476*2bb3fbadSZhengjun Xing        "MetricName": "CPU_Utilization"
477*2bb3fbadSZhengjun Xing    },
478*2bb3fbadSZhengjun Xing    {
479*2bb3fbadSZhengjun Xing        "BriefDescription": "Cycle cost per L2 hit",
480*2bb3fbadSZhengjun Xing        "MetricExpr": "MEM_BOUND_STALLS.LOAD_L2_HIT / MEM_LOAD_UOPS_RETIRED.L2_HIT",
481*2bb3fbadSZhengjun Xing        "MetricName": "Cycles_per_Demand_Load_L2_Hit"
482*2bb3fbadSZhengjun Xing    },
483*2bb3fbadSZhengjun Xing    {
484*2bb3fbadSZhengjun Xing        "BriefDescription": "Cycle cost per LLC hit",
485*2bb3fbadSZhengjun Xing        "MetricExpr": "MEM_BOUND_STALLS.LOAD_LLC_HIT / MEM_LOAD_UOPS_RETIRED.L3_HIT",
486*2bb3fbadSZhengjun Xing        "MetricName": "Cycles_per_Demand_Load_L3_Hit"
487*2bb3fbadSZhengjun Xing    },
488*2bb3fbadSZhengjun Xing    {
489*2bb3fbadSZhengjun Xing        "BriefDescription": "Cycle cost per DRAM hit",
490*2bb3fbadSZhengjun Xing        "MetricExpr": "MEM_BOUND_STALLS.LOAD_DRAM_HIT / MEM_LOAD_UOPS_RETIRED.DRAM_HIT",
491*2bb3fbadSZhengjun Xing        "MetricName": "Cycles_per_Demand_Load_DRAM_Hit"
492*2bb3fbadSZhengjun Xing    },
493*2bb3fbadSZhengjun Xing    {
494*2bb3fbadSZhengjun Xing        "BriefDescription": "Percent of instruction miss cost that hit in the L2",
495*2bb3fbadSZhengjun Xing        "MetricExpr": "100 * MEM_BOUND_STALLS.IFETCH_L2_HIT / (MEM_BOUND_STALLS.IFETCH)",
496*2bb3fbadSZhengjun Xing        "MetricName": "Inst_Miss_Cost_L2Hit_Percent"
497*2bb3fbadSZhengjun Xing    },
498*2bb3fbadSZhengjun Xing    {
499*2bb3fbadSZhengjun Xing        "BriefDescription": "Percent of instruction miss cost that hit in the L3",
500*2bb3fbadSZhengjun Xing        "MetricExpr": "100 * MEM_BOUND_STALLS.IFETCH_LLC_HIT / (MEM_BOUND_STALLS.IFETCH)",
501*2bb3fbadSZhengjun Xing        "MetricName": "Inst_Miss_Cost_L3Hit_Percent"
502*2bb3fbadSZhengjun Xing    },
503*2bb3fbadSZhengjun Xing    {
504*2bb3fbadSZhengjun Xing        "BriefDescription": "Percent of instruction miss cost that hit in DRAM",
505*2bb3fbadSZhengjun Xing        "MetricExpr": "100 * MEM_BOUND_STALLS.IFETCH_DRAM_HIT / (MEM_BOUND_STALLS.IFETCH)",
506*2bb3fbadSZhengjun Xing        "MetricName": "Inst_Miss_Cost_DRAMHit_Percent"
507*2bb3fbadSZhengjun Xing    },
508*2bb3fbadSZhengjun Xing    {
509*2bb3fbadSZhengjun Xing        "BriefDescription": "load ops retired per 1000 instruction",
510*2bb3fbadSZhengjun Xing        "MetricExpr": "1000 * MEM_UOPS_RETIRED.ALL_LOADS / INST_RETIRED.ANY",
511*2bb3fbadSZhengjun Xing        "MetricName": "MemLoadPKI"
512*2bb3fbadSZhengjun Xing    },
513*2bb3fbadSZhengjun Xing    {
514*2bb3fbadSZhengjun Xing        "BriefDescription": "C1 residency percent per core",
515*2bb3fbadSZhengjun Xing        "MetricExpr": "cstate_core@c1\\-residency@ / TSC",
516*2bb3fbadSZhengjun Xing        "MetricGroup": "Power",
517*2bb3fbadSZhengjun Xing        "MetricName": "C1_Core_Residency",
518*2bb3fbadSZhengjun Xing        "ScaleUnit": "100%"
519*2bb3fbadSZhengjun Xing    },
520*2bb3fbadSZhengjun Xing    {
521*2bb3fbadSZhengjun Xing        "BriefDescription": "C6 residency percent per core",
522*2bb3fbadSZhengjun Xing        "MetricExpr": "cstate_core@c6\\-residency@ / TSC",
523*2bb3fbadSZhengjun Xing        "MetricGroup": "Power",
524*2bb3fbadSZhengjun Xing        "MetricName": "C6_Core_Residency",
525*2bb3fbadSZhengjun Xing        "ScaleUnit": "100%"
526*2bb3fbadSZhengjun Xing    },
527*2bb3fbadSZhengjun Xing    {
528*2bb3fbadSZhengjun Xing        "BriefDescription": "C7 residency percent per core",
529*2bb3fbadSZhengjun Xing        "MetricExpr": "cstate_core@c7\\-residency@ / TSC",
530*2bb3fbadSZhengjun Xing        "MetricGroup": "Power",
531*2bb3fbadSZhengjun Xing        "MetricName": "C7_Core_Residency",
532*2bb3fbadSZhengjun Xing        "ScaleUnit": "100%"
533*2bb3fbadSZhengjun Xing    },
534*2bb3fbadSZhengjun Xing    {
535*2bb3fbadSZhengjun Xing        "BriefDescription": "C2 residency percent per package",
536*2bb3fbadSZhengjun Xing        "MetricExpr": "cstate_pkg@c2\\-residency@ / TSC",
537*2bb3fbadSZhengjun Xing        "MetricGroup": "Power",
538*2bb3fbadSZhengjun Xing        "MetricName": "C2_Pkg_Residency",
539*2bb3fbadSZhengjun Xing        "ScaleUnit": "100%"
540*2bb3fbadSZhengjun Xing    },
541*2bb3fbadSZhengjun Xing    {
542*2bb3fbadSZhengjun Xing        "BriefDescription": "C3 residency percent per package",
543*2bb3fbadSZhengjun Xing        "MetricExpr": "cstate_pkg@c3\\-residency@ / TSC",
544*2bb3fbadSZhengjun Xing        "MetricGroup": "Power",
545*2bb3fbadSZhengjun Xing        "MetricName": "C3_Pkg_Residency",
546*2bb3fbadSZhengjun Xing        "ScaleUnit": "100%"
547*2bb3fbadSZhengjun Xing    },
548*2bb3fbadSZhengjun Xing    {
549*2bb3fbadSZhengjun Xing        "BriefDescription": "C6 residency percent per package",
550*2bb3fbadSZhengjun Xing        "MetricExpr": "cstate_pkg@c6\\-residency@ / TSC",
551*2bb3fbadSZhengjun Xing        "MetricGroup": "Power",
552*2bb3fbadSZhengjun Xing        "MetricName": "C6_Pkg_Residency",
553*2bb3fbadSZhengjun Xing        "ScaleUnit": "100%"
554*2bb3fbadSZhengjun Xing    },
555*2bb3fbadSZhengjun Xing    {
556*2bb3fbadSZhengjun Xing        "BriefDescription": "C7 residency percent per package",
557*2bb3fbadSZhengjun Xing        "MetricExpr": "cstate_pkg@c7\\-residency@ / TSC",
558*2bb3fbadSZhengjun Xing        "MetricGroup": "Power",
559*2bb3fbadSZhengjun Xing        "MetricName": "C7_Pkg_Residency",
560*2bb3fbadSZhengjun Xing        "ScaleUnit": "100%"
561*2bb3fbadSZhengjun Xing    },
562*2bb3fbadSZhengjun Xing    {
563*2bb3fbadSZhengjun Xing        "BriefDescription": "C8 residency percent per package",
564*2bb3fbadSZhengjun Xing        "MetricExpr": "cstate_pkg@c8\\-residency@ / TSC",
565*2bb3fbadSZhengjun Xing        "MetricGroup": "Power",
566*2bb3fbadSZhengjun Xing        "MetricName": "C8_Pkg_Residency",
567*2bb3fbadSZhengjun Xing        "ScaleUnit": "100%"
568*2bb3fbadSZhengjun Xing    },
569*2bb3fbadSZhengjun Xing    {
570*2bb3fbadSZhengjun Xing        "BriefDescription": "C9 residency percent per package",
571*2bb3fbadSZhengjun Xing        "MetricExpr": "cstate_pkg@c9\\-residency@ / TSC",
572*2bb3fbadSZhengjun Xing        "MetricGroup": "Power",
573*2bb3fbadSZhengjun Xing        "MetricName": "C9_Pkg_Residency",
574*2bb3fbadSZhengjun Xing        "ScaleUnit": "100%"
575*2bb3fbadSZhengjun Xing    },
576*2bb3fbadSZhengjun Xing    {
577*2bb3fbadSZhengjun Xing        "BriefDescription": "C10 residency percent per package",
578*2bb3fbadSZhengjun Xing        "MetricExpr": "cstate_pkg@c10\\-residency@ / TSC",
579*2bb3fbadSZhengjun Xing        "MetricGroup": "Power",
580*2bb3fbadSZhengjun Xing        "MetricName": "C10_Pkg_Residency",
581*2bb3fbadSZhengjun Xing        "ScaleUnit": "100%"
582*2bb3fbadSZhengjun Xing    }
583*2bb3fbadSZhengjun Xing]
584