1cdb29a8fSJin Yao[
2cdb29a8fSJin Yao    {
3cdb29a8fSJin Yao        "BriefDescription": "Cycles when divide unit is busy executing divide or square root operations.",
4cdb29a8fSJin Yao        "CollectPEBSRecord": "2",
5cdb29a8fSJin Yao        "Counter": "0,1,2,3,4,5,6,7",
6cdb29a8fSJin Yao        "CounterMask": "1",
7cdb29a8fSJin Yao        "EventCode": "0x14",
8cdb29a8fSJin Yao        "EventName": "ARITH.DIVIDER_ACTIVE",
9cdb29a8fSJin Yao        "PEBScounters": "0,1,2,3,4,5,6,7",
10cdb29a8fSJin Yao        "PublicDescription": "Counts cycles when divide unit is busy executing divide or square root operations. Accounts for integer and floating-point operations.",
11cdb29a8fSJin Yao        "SampleAfterValue": "1000003",
12cdb29a8fSJin Yao        "Speculative": "1",
13cdb29a8fSJin Yao        "UMask": "0x9"
14cdb29a8fSJin Yao    },
15cdb29a8fSJin Yao    {
16*09625cffSIan Rogers        "BriefDescription": "All branch instructions retired.",
17cdb29a8fSJin Yao        "CollectPEBSRecord": "2",
18cdb29a8fSJin Yao        "Counter": "0,1,2,3,4,5,6,7",
19*09625cffSIan Rogers        "EventCode": "0xc4",
20*09625cffSIan Rogers        "EventName": "BR_INST_RETIRED.ALL_BRANCHES",
21*09625cffSIan Rogers        "PEBS": "1",
22cdb29a8fSJin Yao        "PEBScounters": "0,1,2,3,4,5,6,7",
23*09625cffSIan Rogers        "PublicDescription": "Counts all branch instructions retired.",
24*09625cffSIan Rogers        "SampleAfterValue": "400009"
25cdb29a8fSJin Yao    },
26cdb29a8fSJin Yao    {
27*09625cffSIan Rogers        "BriefDescription": "Conditional branch instructions retired.",
28cdb29a8fSJin Yao        "CollectPEBSRecord": "2",
29cdb29a8fSJin Yao        "Counter": "0,1,2,3,4,5,6,7",
30*09625cffSIan Rogers        "EventCode": "0xc4",
31*09625cffSIan Rogers        "EventName": "BR_INST_RETIRED.COND",
32*09625cffSIan Rogers        "PEBS": "1",
33cdb29a8fSJin Yao        "PEBScounters": "0,1,2,3,4,5,6,7",
34*09625cffSIan Rogers        "PublicDescription": "Counts conditional branch instructions retired.",
35*09625cffSIan Rogers        "SampleAfterValue": "400009",
36*09625cffSIan Rogers        "UMask": "0x11"
37*09625cffSIan Rogers    },
38*09625cffSIan Rogers    {
39*09625cffSIan Rogers        "BriefDescription": "Not taken branch instructions retired.",
40*09625cffSIan Rogers        "CollectPEBSRecord": "2",
41*09625cffSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
42*09625cffSIan Rogers        "EventCode": "0xc4",
43*09625cffSIan Rogers        "EventName": "BR_INST_RETIRED.COND_NTAKEN",
44*09625cffSIan Rogers        "PEBS": "1",
45*09625cffSIan Rogers        "PEBScounters": "0,1,2,3,4,5,6,7",
46*09625cffSIan Rogers        "PublicDescription": "Counts not taken branch instructions retired.",
47*09625cffSIan Rogers        "SampleAfterValue": "400009",
48*09625cffSIan Rogers        "UMask": "0x10"
49*09625cffSIan Rogers    },
50*09625cffSIan Rogers    {
51*09625cffSIan Rogers        "BriefDescription": "Taken conditional branch instructions retired.",
52*09625cffSIan Rogers        "CollectPEBSRecord": "2",
53*09625cffSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
54*09625cffSIan Rogers        "EventCode": "0xc4",
55*09625cffSIan Rogers        "EventName": "BR_INST_RETIRED.COND_TAKEN",
56*09625cffSIan Rogers        "PEBS": "1",
57*09625cffSIan Rogers        "PEBScounters": "0,1,2,3,4,5,6,7",
58*09625cffSIan Rogers        "PublicDescription": "Counts taken conditional branch instructions retired.",
59*09625cffSIan Rogers        "SampleAfterValue": "400009",
60cdb29a8fSJin Yao        "UMask": "0x1"
61cdb29a8fSJin Yao    },
62cdb29a8fSJin Yao    {
63*09625cffSIan Rogers        "BriefDescription": "Far branch instructions retired.",
64*09625cffSIan Rogers        "CollectPEBSRecord": "2",
65*09625cffSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
66*09625cffSIan Rogers        "EventCode": "0xc4",
67*09625cffSIan Rogers        "EventName": "BR_INST_RETIRED.FAR_BRANCH",
68*09625cffSIan Rogers        "PEBS": "1",
69*09625cffSIan Rogers        "PEBScounters": "0,1,2,3,4,5,6,7",
70*09625cffSIan Rogers        "PublicDescription": "Counts far branch instructions retired.",
71*09625cffSIan Rogers        "SampleAfterValue": "100007",
72*09625cffSIan Rogers        "UMask": "0x40"
73*09625cffSIan Rogers    },
74*09625cffSIan Rogers    {
75*09625cffSIan Rogers        "BriefDescription": "Indirect near branch instructions retired (excluding returns)",
76*09625cffSIan Rogers        "CollectPEBSRecord": "2",
77*09625cffSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
78*09625cffSIan Rogers        "EventCode": "0xc4",
79*09625cffSIan Rogers        "EventName": "BR_INST_RETIRED.INDIRECT",
80*09625cffSIan Rogers        "PEBS": "1",
81*09625cffSIan Rogers        "PEBScounters": "0,1,2,3,4,5,6,7",
82*09625cffSIan Rogers        "PublicDescription": "Counts near indirect branch instructions retired excluding returns. TSX abort is an indirect branch.",
83*09625cffSIan Rogers        "SampleAfterValue": "100003",
84*09625cffSIan Rogers        "UMask": "0x80"
85*09625cffSIan Rogers    },
86*09625cffSIan Rogers    {
87*09625cffSIan Rogers        "BriefDescription": "Direct and indirect near call instructions retired.",
88*09625cffSIan Rogers        "CollectPEBSRecord": "2",
89*09625cffSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
90*09625cffSIan Rogers        "EventCode": "0xc4",
91*09625cffSIan Rogers        "EventName": "BR_INST_RETIRED.NEAR_CALL",
92*09625cffSIan Rogers        "PEBS": "1",
93*09625cffSIan Rogers        "PEBScounters": "0,1,2,3,4,5,6,7",
94*09625cffSIan Rogers        "PublicDescription": "Counts both direct and indirect near call instructions retired.",
95*09625cffSIan Rogers        "SampleAfterValue": "100007",
96*09625cffSIan Rogers        "UMask": "0x2"
97*09625cffSIan Rogers    },
98*09625cffSIan Rogers    {
99*09625cffSIan Rogers        "BriefDescription": "Return instructions retired.",
100*09625cffSIan Rogers        "CollectPEBSRecord": "2",
101*09625cffSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
102*09625cffSIan Rogers        "EventCode": "0xc4",
103*09625cffSIan Rogers        "EventName": "BR_INST_RETIRED.NEAR_RETURN",
104*09625cffSIan Rogers        "PEBS": "1",
105*09625cffSIan Rogers        "PEBScounters": "0,1,2,3,4,5,6,7",
106*09625cffSIan Rogers        "PublicDescription": "Counts return instructions retired.",
107*09625cffSIan Rogers        "SampleAfterValue": "100007",
108*09625cffSIan Rogers        "UMask": "0x8"
109*09625cffSIan Rogers    },
110*09625cffSIan Rogers    {
111*09625cffSIan Rogers        "BriefDescription": "Taken branch instructions retired.",
112*09625cffSIan Rogers        "CollectPEBSRecord": "2",
113*09625cffSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
114*09625cffSIan Rogers        "EventCode": "0xc4",
115*09625cffSIan Rogers        "EventName": "BR_INST_RETIRED.NEAR_TAKEN",
116*09625cffSIan Rogers        "PEBS": "1",
117*09625cffSIan Rogers        "PEBScounters": "0,1,2,3,4,5,6,7",
118*09625cffSIan Rogers        "PublicDescription": "Counts taken branch instructions retired.",
119*09625cffSIan Rogers        "SampleAfterValue": "400009",
120*09625cffSIan Rogers        "UMask": "0x20"
121*09625cffSIan Rogers    },
122*09625cffSIan Rogers    {
123*09625cffSIan Rogers        "BriefDescription": "All mispredicted branch instructions retired.",
124*09625cffSIan Rogers        "CollectPEBSRecord": "2",
125*09625cffSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
126*09625cffSIan Rogers        "EventCode": "0xc5",
127*09625cffSIan Rogers        "EventName": "BR_MISP_RETIRED.ALL_BRANCHES",
128*09625cffSIan Rogers        "PEBS": "1",
129*09625cffSIan Rogers        "PEBScounters": "0,1,2,3,4,5,6,7",
130*09625cffSIan Rogers        "PublicDescription": "Counts all the retired branch instructions that were mispredicted by the processor. A branch misprediction occurs when the processor incorrectly predicts the destination of the branch.  When the misprediction is discovered at execution, all the instructions executed in the wrong (speculative) path must be discarded, and the processor must start fetching from the correct path.",
131*09625cffSIan Rogers        "SampleAfterValue": "50021"
132*09625cffSIan Rogers    },
133*09625cffSIan Rogers    {
134*09625cffSIan Rogers        "BriefDescription": "Mispredicted conditional branch instructions retired.",
135*09625cffSIan Rogers        "CollectPEBSRecord": "2",
136*09625cffSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
137*09625cffSIan Rogers        "EventCode": "0xc5",
138*09625cffSIan Rogers        "EventName": "BR_MISP_RETIRED.COND",
139*09625cffSIan Rogers        "PEBS": "1",
140*09625cffSIan Rogers        "PEBScounters": "0,1,2,3,4,5,6,7",
141*09625cffSIan Rogers        "PublicDescription": "Counts mispredicted conditional branch instructions retired.",
142*09625cffSIan Rogers        "SampleAfterValue": "50021",
143*09625cffSIan Rogers        "UMask": "0x11"
144*09625cffSIan Rogers    },
145*09625cffSIan Rogers    {
146*09625cffSIan Rogers        "BriefDescription": "Mispredicted non-taken conditional branch instructions retired.",
147*09625cffSIan Rogers        "CollectPEBSRecord": "2",
148*09625cffSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
149*09625cffSIan Rogers        "EventCode": "0xc5",
150*09625cffSIan Rogers        "EventName": "BR_MISP_RETIRED.COND_NTAKEN",
151*09625cffSIan Rogers        "PEBS": "1",
152*09625cffSIan Rogers        "PEBScounters": "0,1,2,3,4,5,6,7",
153*09625cffSIan Rogers        "PublicDescription": "Counts the number of conditional branch instructions retired that were mispredicted and the branch direction was not taken.",
154*09625cffSIan Rogers        "SampleAfterValue": "50021",
155*09625cffSIan Rogers        "UMask": "0x10"
156*09625cffSIan Rogers    },
157*09625cffSIan Rogers    {
158*09625cffSIan Rogers        "BriefDescription": "number of branch instructions retired that were mispredicted and taken. Non PEBS",
159*09625cffSIan Rogers        "CollectPEBSRecord": "2",
160*09625cffSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
161*09625cffSIan Rogers        "EventCode": "0xc5",
162*09625cffSIan Rogers        "EventName": "BR_MISP_RETIRED.COND_TAKEN",
163*09625cffSIan Rogers        "PEBS": "1",
164*09625cffSIan Rogers        "PEBScounters": "0,1,2,3,4,5,6,7",
165*09625cffSIan Rogers        "PublicDescription": "Counts taken conditional mispredicted branch instructions retired.",
166*09625cffSIan Rogers        "SampleAfterValue": "50021",
167*09625cffSIan Rogers        "UMask": "0x1"
168*09625cffSIan Rogers    },
169*09625cffSIan Rogers    {
170*09625cffSIan Rogers        "BriefDescription": "All miss-predicted indirect branch instructions retired (excluding RETs. TSX aborts is considered indirect branch).",
171*09625cffSIan Rogers        "CollectPEBSRecord": "2",
172*09625cffSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
173*09625cffSIan Rogers        "EventCode": "0xc5",
174*09625cffSIan Rogers        "EventName": "BR_MISP_RETIRED.INDIRECT",
175*09625cffSIan Rogers        "PEBS": "1",
176*09625cffSIan Rogers        "PEBScounters": "0,1,2,3,4,5,6,7",
177*09625cffSIan Rogers        "PublicDescription": "Counts all miss-predicted indirect branch instructions retired (excluding RETs. TSX aborts is considered indirect branch).",
178*09625cffSIan Rogers        "SampleAfterValue": "50021",
179*09625cffSIan Rogers        "UMask": "0x80"
180*09625cffSIan Rogers    },
181*09625cffSIan Rogers    {
182*09625cffSIan Rogers        "BriefDescription": "Mispredicted indirect CALL instructions retired.",
183*09625cffSIan Rogers        "CollectPEBSRecord": "2",
184*09625cffSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
185*09625cffSIan Rogers        "EventCode": "0xc5",
186*09625cffSIan Rogers        "EventName": "BR_MISP_RETIRED.INDIRECT_CALL",
187*09625cffSIan Rogers        "PEBS": "1",
188*09625cffSIan Rogers        "PEBScounters": "0,1,2,3,4,5,6,7",
189*09625cffSIan Rogers        "PublicDescription": "Counts retired mispredicted indirect (near taken) calls, including both register and memory indirect.",
190*09625cffSIan Rogers        "SampleAfterValue": "50021",
191*09625cffSIan Rogers        "UMask": "0x2"
192*09625cffSIan Rogers    },
193*09625cffSIan Rogers    {
194*09625cffSIan Rogers        "BriefDescription": "Number of near branch instructions retired that were mispredicted and taken.",
195*09625cffSIan Rogers        "CollectPEBSRecord": "2",
196*09625cffSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
197*09625cffSIan Rogers        "EventCode": "0xc5",
198*09625cffSIan Rogers        "EventName": "BR_MISP_RETIRED.NEAR_TAKEN",
199*09625cffSIan Rogers        "PEBS": "1",
200*09625cffSIan Rogers        "PEBScounters": "0,1,2,3,4,5,6,7",
201*09625cffSIan Rogers        "PublicDescription": "Counts number of near branch instructions retired that were mispredicted and taken.",
202*09625cffSIan Rogers        "SampleAfterValue": "50021",
203*09625cffSIan Rogers        "UMask": "0x20"
204*09625cffSIan Rogers    },
205*09625cffSIan Rogers    {
206*09625cffSIan Rogers        "BriefDescription": "Cycle counts are evenly distributed between active threads in the Core.",
207*09625cffSIan Rogers        "CollectPEBSRecord": "2",
208*09625cffSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
209*09625cffSIan Rogers        "EventCode": "0xec",
210*09625cffSIan Rogers        "EventName": "CPU_CLK_UNHALTED.DISTRIBUTED",
211*09625cffSIan Rogers        "PEBScounters": "0,1,2,3,4,5,6,7",
212*09625cffSIan Rogers        "PublicDescription": "This event distributes cycle counts between active hyperthreads, i.e., those in C0.  A hyperthread becomes inactive when it executes the HLT or MWAIT instructions.  If all other hyperthreads are inactive (or disabled or do not exist), all counts are attributed to this hyperthread. To obtain the full count when the Core is active, sum the counts from each hyperthread.",
213*09625cffSIan Rogers        "SampleAfterValue": "2000003",
214*09625cffSIan Rogers        "Speculative": "1",
215*09625cffSIan Rogers        "UMask": "0x2"
216*09625cffSIan Rogers    },
217*09625cffSIan Rogers    {
218cdb29a8fSJin Yao        "BriefDescription": "Core crystal clock cycles when this thread is unhalted and the other thread is halted.",
219cdb29a8fSJin Yao        "CollectPEBSRecord": "2",
220cdb29a8fSJin Yao        "Counter": "0,1,2,3,4,5,6,7",
221cdb29a8fSJin Yao        "EventCode": "0x3C",
222cdb29a8fSJin Yao        "EventName": "CPU_CLK_UNHALTED.ONE_THREAD_ACTIVE",
223cdb29a8fSJin Yao        "PEBScounters": "0,1,2,3,4,5,6,7",
224cdb29a8fSJin Yao        "PublicDescription": "Counts Core crystal clock cycles when current thread is unhalted and the other thread is halted.",
225cdb29a8fSJin Yao        "SampleAfterValue": "25003",
226cdb29a8fSJin Yao        "Speculative": "1",
227cdb29a8fSJin Yao        "UMask": "0x2"
228cdb29a8fSJin Yao    },
229cdb29a8fSJin Yao    {
230cdb29a8fSJin Yao        "BriefDescription": "Core crystal clock cycles. Cycle counts are evenly distributed between active threads in the Core.",
231cdb29a8fSJin Yao        "CollectPEBSRecord": "2",
232cdb29a8fSJin Yao        "Counter": "0,1,2,3,4,5,6,7",
233cdb29a8fSJin Yao        "EventCode": "0x3c",
234cdb29a8fSJin Yao        "EventName": "CPU_CLK_UNHALTED.REF_DISTRIBUTED",
235cdb29a8fSJin Yao        "PEBScounters": "0,1,2,3,4,5,6,7",
236cdb29a8fSJin Yao        "PublicDescription": "This event distributes Core crystal clock cycle counts between active hyperthreads, i.e., those in C0 sleep-state. A hyperthread becomes inactive when it executes the HLT or MWAIT instructions. If one thread is active in a core, all counts are attributed to this hyperthread. To obtain the full count when the Core is active, sum the counts from each hyperthread.",
237cdb29a8fSJin Yao        "SampleAfterValue": "2000003",
238cdb29a8fSJin Yao        "Speculative": "1",
239cdb29a8fSJin Yao        "UMask": "0x8"
240cdb29a8fSJin Yao    },
241cdb29a8fSJin Yao    {
242*09625cffSIan Rogers        "BriefDescription": "Reference cycles when the core is not in halt state.",
243*09625cffSIan Rogers        "CollectPEBSRecord": "2",
244*09625cffSIan Rogers        "Counter": "Fixed counter 2",
245*09625cffSIan Rogers        "EventName": "CPU_CLK_UNHALTED.REF_TSC",
246*09625cffSIan Rogers        "PEBScounters": "34",
247*09625cffSIan Rogers        "PublicDescription": "Counts the number of reference cycles when the core is not in a halt state. The core enters the halt state when it is running the HLT instruction or the MWAIT instruction. This event is not affected by core frequency changes (for example, P states, TM2 transitions) but has the same incrementing frequency as the time stamp counter. This event can approximate elapsed time while the core was not in a halt state. This event has a constant ratio with the CPU_CLK_UNHALTED.REF_XCLK event. It is counted on a dedicated fixed counter, leaving the eight programmable counters available for other events. Note: On all current platforms this event stops counting during 'throttling (TM)' states duty off periods the processor is 'halted'.  The counter update is done at a lower clock rate then the core clock the overflow status bit for this counter may appear 'sticky'.  After the counter has overflowed and software clears the overflow status bit and resets the counter to less than MAX. The reset value to the counter is not clocked immediately so the overflow status bit will flip 'high (1)' and generate another PMI (if enabled) after which the reset value gets clocked into the counter. Therefore, software will get the interrupt, read the overflow status bit '1 for bit 34 while the counter value is less than MAX. Software should ignore this case.",
248*09625cffSIan Rogers        "SampleAfterValue": "2000003",
249*09625cffSIan Rogers        "Speculative": "1",
250*09625cffSIan Rogers        "UMask": "0x3"
251*09625cffSIan Rogers    },
252*09625cffSIan Rogers    {
253*09625cffSIan Rogers        "BriefDescription": "Core crystal clock cycles when the thread is unhalted.",
254*09625cffSIan Rogers        "CollectPEBSRecord": "2",
255*09625cffSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
256*09625cffSIan Rogers        "EventCode": "0x3C",
257*09625cffSIan Rogers        "EventName": "CPU_CLK_UNHALTED.REF_XCLK",
258*09625cffSIan Rogers        "PEBScounters": "0,1,2,3,4,5,6,7",
259*09625cffSIan Rogers        "PublicDescription": "Counts core crystal clock cycles when the thread is unhalted.",
260*09625cffSIan Rogers        "SampleAfterValue": "25003",
261*09625cffSIan Rogers        "Speculative": "1",
262*09625cffSIan Rogers        "UMask": "0x1"
263*09625cffSIan Rogers    },
264*09625cffSIan Rogers    {
265*09625cffSIan Rogers        "BriefDescription": "Core cycles when the thread is not in halt state",
266*09625cffSIan Rogers        "CollectPEBSRecord": "2",
267*09625cffSIan Rogers        "Counter": "Fixed counter 1",
268*09625cffSIan Rogers        "EventName": "CPU_CLK_UNHALTED.THREAD",
269*09625cffSIan Rogers        "PEBScounters": "33",
270*09625cffSIan Rogers        "PublicDescription": "Counts the number of core cycles while the thread is not in a halt state. The thread enters the halt state when it is running the HLT instruction. This event is a component in many key event ratios. The core frequency may change from time to time due to transitions associated with Enhanced Intel SpeedStep Technology or TM2. For this reason this event may have a changing ratio with regards to time. When the core frequency is constant, this event can approximate elapsed time while the core was not in the halt state. It is counted on a dedicated fixed counter, leaving the eight programmable counters available for other events.",
271*09625cffSIan Rogers        "SampleAfterValue": "2000003",
272*09625cffSIan Rogers        "Speculative": "1",
273*09625cffSIan Rogers        "UMask": "0x2"
274*09625cffSIan Rogers    },
275*09625cffSIan Rogers    {
276*09625cffSIan Rogers        "BriefDescription": "Thread cycles when thread is not in halt state",
277*09625cffSIan Rogers        "CollectPEBSRecord": "2",
278*09625cffSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
279*09625cffSIan Rogers        "EventCode": "0x3C",
280*09625cffSIan Rogers        "EventName": "CPU_CLK_UNHALTED.THREAD_P",
281*09625cffSIan Rogers        "PEBScounters": "0,1,2,3,4,5,6,7",
282*09625cffSIan Rogers        "PublicDescription": "This is an architectural event that counts the number of thread cycles while the thread is not in a halt state. The thread enters the halt state when it is running the HLT instruction. The core frequency may change from time to time due to power or thermal throttling. For this reason, this event may have a changing ratio with regards to wall clock time.",
283*09625cffSIan Rogers        "SampleAfterValue": "2000003",
284*09625cffSIan Rogers        "Speculative": "1"
285*09625cffSIan Rogers    },
286*09625cffSIan Rogers    {
287*09625cffSIan Rogers        "BriefDescription": "Cycles while L1 cache miss demand load is outstanding.",
288*09625cffSIan Rogers        "CollectPEBSRecord": "2",
289*09625cffSIan Rogers        "Counter": "0,1,2,3",
290*09625cffSIan Rogers        "CounterMask": "8",
291*09625cffSIan Rogers        "EventCode": "0xA3",
292*09625cffSIan Rogers        "EventName": "CYCLE_ACTIVITY.CYCLES_L1D_MISS",
293*09625cffSIan Rogers        "PEBScounters": "0,1,2,3",
294*09625cffSIan Rogers        "SampleAfterValue": "1000003",
295*09625cffSIan Rogers        "Speculative": "1",
296*09625cffSIan Rogers        "UMask": "0x8"
297*09625cffSIan Rogers    },
298*09625cffSIan Rogers    {
299*09625cffSIan Rogers        "BriefDescription": "Cycles while L2 cache miss demand load is outstanding.",
300*09625cffSIan Rogers        "CollectPEBSRecord": "2",
301*09625cffSIan Rogers        "Counter": "0,1,2,3",
302*09625cffSIan Rogers        "CounterMask": "1",
303*09625cffSIan Rogers        "EventCode": "0xA3",
304*09625cffSIan Rogers        "EventName": "CYCLE_ACTIVITY.CYCLES_L2_MISS",
305*09625cffSIan Rogers        "PEBScounters": "0,1,2,3",
306*09625cffSIan Rogers        "SampleAfterValue": "1000003",
307*09625cffSIan Rogers        "Speculative": "1",
308*09625cffSIan Rogers        "UMask": "0x1"
309*09625cffSIan Rogers    },
310*09625cffSIan Rogers    {
311*09625cffSIan Rogers        "BriefDescription": "Cycles while memory subsystem has an outstanding load.",
312*09625cffSIan Rogers        "CollectPEBSRecord": "2",
313*09625cffSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
314*09625cffSIan Rogers        "CounterMask": "16",
315*09625cffSIan Rogers        "EventCode": "0xA3",
316*09625cffSIan Rogers        "EventName": "CYCLE_ACTIVITY.CYCLES_MEM_ANY",
317*09625cffSIan Rogers        "PEBScounters": "0,1,2,3,4,5,6,7",
318*09625cffSIan Rogers        "SampleAfterValue": "1000003",
319*09625cffSIan Rogers        "Speculative": "1",
320*09625cffSIan Rogers        "UMask": "0x10"
321*09625cffSIan Rogers    },
322*09625cffSIan Rogers    {
323*09625cffSIan Rogers        "BriefDescription": "Execution stalls while L1 cache miss demand load is outstanding.",
324*09625cffSIan Rogers        "CollectPEBSRecord": "2",
325*09625cffSIan Rogers        "Counter": "0,1,2,3",
326*09625cffSIan Rogers        "CounterMask": "12",
327*09625cffSIan Rogers        "EventCode": "0xA3",
328*09625cffSIan Rogers        "EventName": "CYCLE_ACTIVITY.STALLS_L1D_MISS",
329*09625cffSIan Rogers        "PEBScounters": "0,1,2,3",
330*09625cffSIan Rogers        "SampleAfterValue": "1000003",
331*09625cffSIan Rogers        "Speculative": "1",
332*09625cffSIan Rogers        "UMask": "0xc"
333*09625cffSIan Rogers    },
334*09625cffSIan Rogers    {
335*09625cffSIan Rogers        "BriefDescription": "Execution stalls while L2 cache miss demand load is outstanding.",
336*09625cffSIan Rogers        "CollectPEBSRecord": "2",
337*09625cffSIan Rogers        "Counter": "0,1,2,3",
338*09625cffSIan Rogers        "CounterMask": "5",
339*09625cffSIan Rogers        "EventCode": "0xa3",
340*09625cffSIan Rogers        "EventName": "CYCLE_ACTIVITY.STALLS_L2_MISS",
341*09625cffSIan Rogers        "PEBScounters": "0,1,2,3",
342*09625cffSIan Rogers        "SampleAfterValue": "1000003",
343*09625cffSIan Rogers        "Speculative": "1",
344*09625cffSIan Rogers        "UMask": "0x5"
345*09625cffSIan Rogers    },
346*09625cffSIan Rogers    {
347*09625cffSIan Rogers        "BriefDescription": "Execution stalls while memory subsystem has an outstanding load.",
348*09625cffSIan Rogers        "CollectPEBSRecord": "2",
349*09625cffSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
350*09625cffSIan Rogers        "CounterMask": "20",
351*09625cffSIan Rogers        "EventCode": "0xa3",
352*09625cffSIan Rogers        "EventName": "CYCLE_ACTIVITY.STALLS_MEM_ANY",
353*09625cffSIan Rogers        "PEBScounters": "0,1,2,3,4,5,6,7",
354*09625cffSIan Rogers        "SampleAfterValue": "1000003",
355*09625cffSIan Rogers        "Speculative": "1",
356*09625cffSIan Rogers        "UMask": "0x14"
357*09625cffSIan Rogers    },
358*09625cffSIan Rogers    {
359*09625cffSIan Rogers        "BriefDescription": "Total execution stalls.",
360*09625cffSIan Rogers        "CollectPEBSRecord": "2",
361*09625cffSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
362*09625cffSIan Rogers        "CounterMask": "4",
363*09625cffSIan Rogers        "EventCode": "0xa3",
364*09625cffSIan Rogers        "EventName": "CYCLE_ACTIVITY.STALLS_TOTAL",
365*09625cffSIan Rogers        "PEBScounters": "0,1,2,3,4,5,6,7",
366*09625cffSIan Rogers        "SampleAfterValue": "1000003",
367*09625cffSIan Rogers        "Speculative": "1",
368*09625cffSIan Rogers        "UMask": "0x4"
369*09625cffSIan Rogers    },
370*09625cffSIan Rogers    {
371*09625cffSIan Rogers        "BriefDescription": "Cycles total of 1 uop is executed on all ports and Reservation Station was not empty.",
372*09625cffSIan Rogers        "CollectPEBSRecord": "2",
373*09625cffSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
374*09625cffSIan Rogers        "EventCode": "0xa6",
375*09625cffSIan Rogers        "EventName": "EXE_ACTIVITY.1_PORTS_UTIL",
376*09625cffSIan Rogers        "PEBScounters": "0,1,2,3,4,5,6,7",
377*09625cffSIan Rogers        "PublicDescription": "Counts cycles during which a total of 1 uop was executed on all ports and Reservation Station (RS) was not empty.",
378*09625cffSIan Rogers        "SampleAfterValue": "2000003",
379*09625cffSIan Rogers        "Speculative": "1",
380*09625cffSIan Rogers        "UMask": "0x2"
381*09625cffSIan Rogers    },
382*09625cffSIan Rogers    {
383*09625cffSIan Rogers        "BriefDescription": "Cycles total of 2 uops are executed on all ports and Reservation Station was not empty.",
384*09625cffSIan Rogers        "CollectPEBSRecord": "2",
385*09625cffSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
386*09625cffSIan Rogers        "EventCode": "0xa6",
387*09625cffSIan Rogers        "EventName": "EXE_ACTIVITY.2_PORTS_UTIL",
388*09625cffSIan Rogers        "PEBScounters": "0,1,2,3,4,5,6,7",
389*09625cffSIan Rogers        "PublicDescription": "Counts cycles during which a total of 2 uops were executed on all ports and Reservation Station (RS) was not empty.",
390*09625cffSIan Rogers        "SampleAfterValue": "2000003",
391*09625cffSIan Rogers        "Speculative": "1",
392*09625cffSIan Rogers        "UMask": "0x4"
393*09625cffSIan Rogers    },
394*09625cffSIan Rogers    {
395*09625cffSIan Rogers        "BriefDescription": "Cycles total of 3 uops are executed on all ports and Reservation Station was not empty.",
396*09625cffSIan Rogers        "CollectPEBSRecord": "2",
397*09625cffSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
398*09625cffSIan Rogers        "EventCode": "0xa6",
399*09625cffSIan Rogers        "EventName": "EXE_ACTIVITY.3_PORTS_UTIL",
400*09625cffSIan Rogers        "PEBScounters": "0,1,2,3,4,5,6,7",
401*09625cffSIan Rogers        "PublicDescription": "Cycles total of 3 uops are executed on all ports and Reservation Station (RS) was not empty.",
402*09625cffSIan Rogers        "SampleAfterValue": "2000003",
403*09625cffSIan Rogers        "Speculative": "1",
404*09625cffSIan Rogers        "UMask": "0x8"
405*09625cffSIan Rogers    },
406*09625cffSIan Rogers    {
407*09625cffSIan Rogers        "BriefDescription": "Cycles total of 4 uops are executed on all ports and Reservation Station was not empty.",
408*09625cffSIan Rogers        "CollectPEBSRecord": "2",
409*09625cffSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
410*09625cffSIan Rogers        "EventCode": "0xa6",
411*09625cffSIan Rogers        "EventName": "EXE_ACTIVITY.4_PORTS_UTIL",
412*09625cffSIan Rogers        "PEBScounters": "0,1,2,3,4,5,6,7",
413*09625cffSIan Rogers        "PublicDescription": "Cycles total of 4 uops are executed on all ports and Reservation Station (RS) was not empty.",
414*09625cffSIan Rogers        "SampleAfterValue": "2000003",
415*09625cffSIan Rogers        "Speculative": "1",
416*09625cffSIan Rogers        "UMask": "0x10"
417*09625cffSIan Rogers    },
418*09625cffSIan Rogers    {
419*09625cffSIan Rogers        "BriefDescription": "Cycles where the Store Buffer was full and no loads caused an execution stall.",
420*09625cffSIan Rogers        "CollectPEBSRecord": "2",
421*09625cffSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
422*09625cffSIan Rogers        "CounterMask": "2",
423*09625cffSIan Rogers        "EventCode": "0xA6",
424*09625cffSIan Rogers        "EventName": "EXE_ACTIVITY.BOUND_ON_STORES",
425*09625cffSIan Rogers        "PEBScounters": "0,1,2,3,4,5,6,7",
426*09625cffSIan Rogers        "PublicDescription": "Counts cycles where the Store Buffer was full and no loads caused an execution stall.",
427*09625cffSIan Rogers        "SampleAfterValue": "1000003",
428*09625cffSIan Rogers        "Speculative": "1",
429*09625cffSIan Rogers        "UMask": "0x40"
430*09625cffSIan Rogers    },
431*09625cffSIan Rogers    {
432*09625cffSIan Rogers        "BriefDescription": "Stalls caused by changing prefix length of the instruction.",
433*09625cffSIan Rogers        "CollectPEBSRecord": "2",
434*09625cffSIan Rogers        "Counter": "0,1,2,3",
435*09625cffSIan Rogers        "EventCode": "0x87",
436*09625cffSIan Rogers        "EventName": "ILD_STALL.LCP",
437*09625cffSIan Rogers        "PEBScounters": "0,1,2,3",
438*09625cffSIan Rogers        "PublicDescription": "Counts cycles that the Instruction Length decoder (ILD) stalls occurred due to dynamically changing prefix length of the decoded instruction (by operand size prefix instruction 0x66, address size prefix instruction 0x67 or REX.W for Intel64). Count is proportional to the number of prefixes in a 16B-line. This may result in a three-cycle penalty for each LCP (Length changing prefix) in a 16-byte chunk.",
439*09625cffSIan Rogers        "SampleAfterValue": "500009",
440*09625cffSIan Rogers        "Speculative": "1",
441*09625cffSIan Rogers        "UMask": "0x1"
442*09625cffSIan Rogers    },
443*09625cffSIan Rogers    {
444*09625cffSIan Rogers        "BriefDescription": "Instruction decoders utilized in a cycle",
445*09625cffSIan Rogers        "CollectPEBSRecord": "2",
446*09625cffSIan Rogers        "Counter": "0,1,2,3",
447*09625cffSIan Rogers        "EventCode": "0x55",
448*09625cffSIan Rogers        "EventName": "INST_DECODED.DECODERS",
449*09625cffSIan Rogers        "PEBScounters": "0,1,2,3",
450*09625cffSIan Rogers        "PublicDescription": "Number of decoders utilized in a cycle when the MITE (legacy decode pipeline) fetches instructions.",
451*09625cffSIan Rogers        "SampleAfterValue": "2000003",
452*09625cffSIan Rogers        "Speculative": "1",
453*09625cffSIan Rogers        "UMask": "0x1"
454*09625cffSIan Rogers    },
455*09625cffSIan Rogers    {
456*09625cffSIan Rogers        "BriefDescription": "Number of instructions retired. Fixed Counter - architectural event",
457*09625cffSIan Rogers        "CollectPEBSRecord": "2",
458*09625cffSIan Rogers        "Counter": "Fixed counter 0",
459*09625cffSIan Rogers        "EventName": "INST_RETIRED.ANY",
460*09625cffSIan Rogers        "PEBS": "1",
461*09625cffSIan Rogers        "PEBScounters": "32",
462*09625cffSIan Rogers        "PublicDescription": "Counts the number of instructions retired - an Architectural PerfMon event. Counting continues during hardware interrupts, traps, and inside interrupt handlers. Notes: INST_RETIRED.ANY is counted by a designated fixed counter freeing up programmable counters to count other events. INST_RETIRED.ANY_P is counted by a programmable counter.",
463*09625cffSIan Rogers        "SampleAfterValue": "2000003",
464*09625cffSIan Rogers        "UMask": "0x1"
465*09625cffSIan Rogers    },
466*09625cffSIan Rogers    {
467*09625cffSIan Rogers        "BriefDescription": "Number of instructions retired. General Counter - architectural event",
468*09625cffSIan Rogers        "CollectPEBSRecord": "2",
469*09625cffSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
470*09625cffSIan Rogers        "EventCode": "0xc0",
471*09625cffSIan Rogers        "EventName": "INST_RETIRED.ANY_P",
472*09625cffSIan Rogers        "PEBS": "1",
473*09625cffSIan Rogers        "PEBScounters": "0,1,2,3,4,5,6,7",
474*09625cffSIan Rogers        "PublicDescription": "Counts the number of instructions retired - an Architectural PerfMon event. Counting continues during hardware interrupts, traps, and inside interrupt handlers. Notes: INST_RETIRED.ANY is counted by a designated fixed counter freeing up programmable counters to count other events. INST_RETIRED.ANY_P is counted by a programmable counter.",
475*09625cffSIan Rogers        "SampleAfterValue": "2000003"
476*09625cffSIan Rogers    },
477*09625cffSIan Rogers    {
478*09625cffSIan Rogers        "BriefDescription": "Number of all retired NOP instructions.",
479*09625cffSIan Rogers        "CollectPEBSRecord": "2",
480*09625cffSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
481*09625cffSIan Rogers        "EventCode": "0xc0",
482*09625cffSIan Rogers        "EventName": "INST_RETIRED.NOP",
483*09625cffSIan Rogers        "PEBS": "1",
484*09625cffSIan Rogers        "PEBScounters": "0,1,2,3,4,5,6,7",
485*09625cffSIan Rogers        "SampleAfterValue": "2000003",
486*09625cffSIan Rogers        "UMask": "0x2"
487*09625cffSIan Rogers    },
488*09625cffSIan Rogers    {
489*09625cffSIan Rogers        "BriefDescription": "Precise instruction retired event with a reduced effect of PEBS shadow in IP distribution",
490*09625cffSIan Rogers        "CollectPEBSRecord": "2",
491*09625cffSIan Rogers        "Counter": "Fixed counter 0",
492*09625cffSIan Rogers        "EventName": "INST_RETIRED.PREC_DIST",
493*09625cffSIan Rogers        "PEBS": "1",
494*09625cffSIan Rogers        "PEBScounters": "32",
495*09625cffSIan Rogers        "PublicDescription": "A version of INST_RETIRED that allows for a more unbiased distribution of samples across instructions retired. It utilizes the Precise Distribution of Instructions Retired (PDIR) feature to mitigate some bias in how retired instructions get sampled. Use on Fixed Counter 0.",
496*09625cffSIan Rogers        "SampleAfterValue": "2000003",
497*09625cffSIan Rogers        "UMask": "0x1"
498*09625cffSIan Rogers    },
499*09625cffSIan Rogers    {
500*09625cffSIan Rogers        "BriefDescription": "Cycles the Backend cluster is recovering after a miss-speculation or a Store Buffer or Load Buffer drain stall.",
501*09625cffSIan Rogers        "CollectPEBSRecord": "2",
502*09625cffSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
503*09625cffSIan Rogers        "CounterMask": "1",
504*09625cffSIan Rogers        "EventCode": "0x0D",
505*09625cffSIan Rogers        "EventName": "INT_MISC.ALL_RECOVERY_CYCLES",
506*09625cffSIan Rogers        "PEBScounters": "0,1,2,3,4,5,6,7",
507*09625cffSIan Rogers        "PublicDescription": "Counts cycles the Backend cluster is recovering after a miss-speculation or a Store Buffer or Load Buffer drain stall.",
508*09625cffSIan Rogers        "SampleAfterValue": "2000003",
509*09625cffSIan Rogers        "Speculative": "1",
510*09625cffSIan Rogers        "UMask": "0x3"
511*09625cffSIan Rogers    },
512*09625cffSIan Rogers    {
513*09625cffSIan Rogers        "BriefDescription": "Counts cycles after recovery from a branch misprediction or machine clear till the first uop is issued from the resteered path.",
514*09625cffSIan Rogers        "CollectPEBSRecord": "2",
515*09625cffSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
516*09625cffSIan Rogers        "EventCode": "0x0d",
517*09625cffSIan Rogers        "EventName": "INT_MISC.CLEAR_RESTEER_CYCLES",
518*09625cffSIan Rogers        "PEBScounters": "0,1,2,3,4,5,6,7",
519*09625cffSIan Rogers        "PublicDescription": "Cycles after recovery from a branch misprediction or machine clear till the first uop is issued from the resteered path.",
520*09625cffSIan Rogers        "SampleAfterValue": "500009",
521*09625cffSIan Rogers        "Speculative": "1",
522*09625cffSIan Rogers        "UMask": "0x80"
523*09625cffSIan Rogers    },
524*09625cffSIan Rogers    {
525*09625cffSIan Rogers        "BriefDescription": "Core cycles the allocator was stalled due to recovery from earlier clear event for this thread",
526*09625cffSIan Rogers        "CollectPEBSRecord": "2",
527*09625cffSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
528*09625cffSIan Rogers        "EventCode": "0x0D",
529*09625cffSIan Rogers        "EventName": "INT_MISC.RECOVERY_CYCLES",
530*09625cffSIan Rogers        "PEBScounters": "0,1,2,3,4,5,6,7",
531*09625cffSIan Rogers        "PublicDescription": "Counts core cycles when the Resource allocator was stalled due to recovery from an earlier branch misprediction or machine clear event.",
532*09625cffSIan Rogers        "SampleAfterValue": "500009",
533*09625cffSIan Rogers        "Speculative": "1",
534*09625cffSIan Rogers        "UMask": "0x1"
535*09625cffSIan Rogers    },
536*09625cffSIan Rogers    {
537*09625cffSIan Rogers        "BriefDescription": "TMA slots where uops got dropped",
538*09625cffSIan Rogers        "CollectPEBSRecord": "2",
539*09625cffSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
540*09625cffSIan Rogers        "EventCode": "0x0d",
541*09625cffSIan Rogers        "EventName": "INT_MISC.UOP_DROPPING",
542*09625cffSIan Rogers        "PEBScounters": "0,1,2,3,4,5,6,7",
543*09625cffSIan Rogers        "PublicDescription": "Estimated number of Top-down Microarchitecture Analysis slots that got dropped due to non front-end reasons",
544*09625cffSIan Rogers        "SampleAfterValue": "1000003",
545*09625cffSIan Rogers        "Speculative": "1",
546*09625cffSIan Rogers        "UMask": "0x10"
547*09625cffSIan Rogers    },
548*09625cffSIan Rogers    {
549*09625cffSIan Rogers        "BriefDescription": "The number of times that split load operations are temporarily blocked because all resources for handling the split accesses are in use.",
550*09625cffSIan Rogers        "CollectPEBSRecord": "2",
551*09625cffSIan Rogers        "Counter": "0,1,2,3",
552*09625cffSIan Rogers        "EventCode": "0x03",
553*09625cffSIan Rogers        "EventName": "LD_BLOCKS.NO_SR",
554*09625cffSIan Rogers        "PEBScounters": "0,1,2,3",
555*09625cffSIan Rogers        "PublicDescription": "Counts the number of times that split load operations are temporarily blocked because all resources for handling the split accesses are in use.",
556*09625cffSIan Rogers        "SampleAfterValue": "100003",
557*09625cffSIan Rogers        "Speculative": "1",
558*09625cffSIan Rogers        "UMask": "0x8"
559*09625cffSIan Rogers    },
560*09625cffSIan Rogers    {
561*09625cffSIan Rogers        "BriefDescription": "Loads blocked due to overlapping with a preceding store that cannot be forwarded.",
562*09625cffSIan Rogers        "CollectPEBSRecord": "2",
563*09625cffSIan Rogers        "Counter": "0,1,2,3",
564*09625cffSIan Rogers        "EventCode": "0x03",
565*09625cffSIan Rogers        "EventName": "LD_BLOCKS.STORE_FORWARD",
566*09625cffSIan Rogers        "PEBScounters": "0,1,2,3",
567*09625cffSIan Rogers        "PublicDescription": "Counts the number of times where store forwarding was prevented for a load operation. The most common case is a load blocked due to the address of memory access (partially) overlapping with a preceding uncompleted store. Note: See the table of not supported store forwards in the Optimization Guide.",
568*09625cffSIan Rogers        "SampleAfterValue": "100003",
569*09625cffSIan Rogers        "Speculative": "1",
570*09625cffSIan Rogers        "UMask": "0x2"
571*09625cffSIan Rogers    },
572*09625cffSIan Rogers    {
573*09625cffSIan Rogers        "BriefDescription": "False dependencies due to partial compare on address.",
574*09625cffSIan Rogers        "CollectPEBSRecord": "2",
575*09625cffSIan Rogers        "Counter": "0,1,2,3",
576*09625cffSIan Rogers        "EventCode": "0x07",
577*09625cffSIan Rogers        "EventName": "LD_BLOCKS_PARTIAL.ADDRESS_ALIAS",
578*09625cffSIan Rogers        "PEBScounters": "0,1,2,3",
579*09625cffSIan Rogers        "PublicDescription": "Counts the number of times a load got blocked due to false dependencies due to partial compare on address.",
580*09625cffSIan Rogers        "SampleAfterValue": "100003",
581*09625cffSIan Rogers        "Speculative": "1",
582*09625cffSIan Rogers        "UMask": "0x1"
583*09625cffSIan Rogers    },
584*09625cffSIan Rogers    {
585cdb29a8fSJin Yao        "BriefDescription": "Counts the number of demand load dispatches that hit L1D fill buffer (FB) allocated for software prefetch.",
586cdb29a8fSJin Yao        "CollectPEBSRecord": "2",
587cdb29a8fSJin Yao        "Counter": "0,1,2,3",
588cdb29a8fSJin Yao        "EventCode": "0x4c",
589cdb29a8fSJin Yao        "EventName": "LOAD_HIT_PREFETCH.SWPF",
590cdb29a8fSJin Yao        "PEBScounters": "0,1,2,3",
591cdb29a8fSJin Yao        "PublicDescription": "Counts all not software-prefetch load dispatches that hit the fill buffer (FB) allocated for the software prefetch. It can also be incremented by some lock instructions. So it should only be used with profiling so that the locks can be excluded by ASM (Assembly File) inspection of the nearby instructions.",
592cdb29a8fSJin Yao        "SampleAfterValue": "100003",
593cdb29a8fSJin Yao        "Speculative": "1",
594cdb29a8fSJin Yao        "UMask": "0x1"
595cdb29a8fSJin Yao    },
596cdb29a8fSJin Yao    {
597*09625cffSIan Rogers        "BriefDescription": "Cycles Uops delivered by the LSD, but didn't come from the decoder.",
598*09625cffSIan Rogers        "CollectPEBSRecord": "2",
599*09625cffSIan Rogers        "Counter": "0,1,2,3",
600*09625cffSIan Rogers        "CounterMask": "1",
601*09625cffSIan Rogers        "EventCode": "0xA8",
602*09625cffSIan Rogers        "EventName": "LSD.CYCLES_ACTIVE",
603*09625cffSIan Rogers        "PEBScounters": "0,1,2,3",
604*09625cffSIan Rogers        "PublicDescription": "Counts the cycles when at least one uop is delivered by the LSD (Loop-stream detector).",
605*09625cffSIan Rogers        "SampleAfterValue": "2000003",
606*09625cffSIan Rogers        "Speculative": "1",
607*09625cffSIan Rogers        "UMask": "0x1"
608*09625cffSIan Rogers    },
609*09625cffSIan Rogers    {
610*09625cffSIan Rogers        "BriefDescription": "Cycles optimal number of Uops delivered by the LSD, but did not come from the decoder.",
611*09625cffSIan Rogers        "CollectPEBSRecord": "2",
612*09625cffSIan Rogers        "Counter": "0,1,2,3",
613*09625cffSIan Rogers        "CounterMask": "5",
614*09625cffSIan Rogers        "EventCode": "0xa8",
615*09625cffSIan Rogers        "EventName": "LSD.CYCLES_OK",
616*09625cffSIan Rogers        "PEBScounters": "0,1,2,3",
617*09625cffSIan Rogers        "PublicDescription": "Counts the cycles when optimal number of uops is delivered by the LSD (Loop-stream detector).",
618*09625cffSIan Rogers        "SampleAfterValue": "2000003",
619*09625cffSIan Rogers        "Speculative": "1",
620*09625cffSIan Rogers        "UMask": "0x1"
621*09625cffSIan Rogers    },
622*09625cffSIan Rogers    {
623*09625cffSIan Rogers        "BriefDescription": "Number of Uops delivered by the LSD.",
624*09625cffSIan Rogers        "CollectPEBSRecord": "2",
625*09625cffSIan Rogers        "Counter": "0,1,2,3",
626*09625cffSIan Rogers        "EventCode": "0xa8",
627*09625cffSIan Rogers        "EventName": "LSD.UOPS",
628*09625cffSIan Rogers        "PEBScounters": "0,1,2,3",
629*09625cffSIan Rogers        "PublicDescription": "Counts the number of uops delivered to the back-end by the LSD(Loop Stream Detector).",
630*09625cffSIan Rogers        "SampleAfterValue": "2000003",
631*09625cffSIan Rogers        "Speculative": "1",
632*09625cffSIan Rogers        "UMask": "0x1"
633*09625cffSIan Rogers    },
634*09625cffSIan Rogers    {
635*09625cffSIan Rogers        "BriefDescription": "Number of machine clears (nukes) of any type.",
636*09625cffSIan Rogers        "CollectPEBSRecord": "2",
637*09625cffSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
638*09625cffSIan Rogers        "CounterMask": "1",
639*09625cffSIan Rogers        "EdgeDetect": "1",
640*09625cffSIan Rogers        "EventCode": "0xc3",
641*09625cffSIan Rogers        "EventName": "MACHINE_CLEARS.COUNT",
642*09625cffSIan Rogers        "PEBScounters": "0,1,2,3,4,5,6,7",
643*09625cffSIan Rogers        "PublicDescription": "Counts the number of machine clears (nukes) of any type.",
644*09625cffSIan Rogers        "SampleAfterValue": "100003",
645*09625cffSIan Rogers        "Speculative": "1",
646*09625cffSIan Rogers        "UMask": "0x1"
647*09625cffSIan Rogers    },
648*09625cffSIan Rogers    {
649*09625cffSIan Rogers        "BriefDescription": "Self-modifying code (SMC) detected.",
650*09625cffSIan Rogers        "CollectPEBSRecord": "2",
651*09625cffSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
652*09625cffSIan Rogers        "EventCode": "0xc3",
653*09625cffSIan Rogers        "EventName": "MACHINE_CLEARS.SMC",
654*09625cffSIan Rogers        "PEBScounters": "0,1,2,3,4,5,6,7",
655*09625cffSIan Rogers        "PublicDescription": "Counts self-modifying code (SMC) detected, which causes a machine clear.",
656*09625cffSIan Rogers        "SampleAfterValue": "100003",
657*09625cffSIan Rogers        "Speculative": "1",
658*09625cffSIan Rogers        "UMask": "0x4"
659*09625cffSIan Rogers    },
660*09625cffSIan Rogers    {
661*09625cffSIan Rogers        "BriefDescription": "Increments whenever there is an update to the LBR array.",
662*09625cffSIan Rogers        "CollectPEBSRecord": "2",
663*09625cffSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
664*09625cffSIan Rogers        "EventCode": "0xcc",
665*09625cffSIan Rogers        "EventName": "MISC_RETIRED.LBR_INSERTS",
666*09625cffSIan Rogers        "PEBScounters": "0,1,2,3,4,5,6,7",
667*09625cffSIan Rogers        "PublicDescription": "Increments when an entry is added to the Last Branch Record (LBR) array (or removed from the array in case of RETURNs in call stack mode). The event requires LBR to be enabled properly.",
668*09625cffSIan Rogers        "SampleAfterValue": "100003",
669*09625cffSIan Rogers        "UMask": "0x20"
670*09625cffSIan Rogers    },
671*09625cffSIan Rogers    {
672*09625cffSIan Rogers        "BriefDescription": "Number of retired PAUSE instructions. This event is not supported on first SKL and KBL products.",
673*09625cffSIan Rogers        "CollectPEBSRecord": "2",
674*09625cffSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
675*09625cffSIan Rogers        "EventCode": "0xcc",
676*09625cffSIan Rogers        "EventName": "MISC_RETIRED.PAUSE_INST",
677*09625cffSIan Rogers        "PublicDescription": "Counts number of retired PAUSE instructions. This event is not supported on first SKL and KBL products.",
678*09625cffSIan Rogers        "SampleAfterValue": "100003",
679*09625cffSIan Rogers        "UMask": "0x40"
680*09625cffSIan Rogers    },
681*09625cffSIan Rogers    {
682*09625cffSIan Rogers        "BriefDescription": "Cycles stalled due to no store buffers available. (not including draining form sync).",
683*09625cffSIan Rogers        "CollectPEBSRecord": "2",
684*09625cffSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
685*09625cffSIan Rogers        "EventCode": "0xa2",
686*09625cffSIan Rogers        "EventName": "RESOURCE_STALLS.SB",
687*09625cffSIan Rogers        "PEBScounters": "0,1,2,3,4,5,6,7",
688*09625cffSIan Rogers        "PublicDescription": "Counts allocation stall cycles caused by the store buffer (SB) being full. This counts cycles that the pipeline back-end blocked uop delivery from the front-end.",
689*09625cffSIan Rogers        "SampleAfterValue": "100003",
690*09625cffSIan Rogers        "Speculative": "1",
691*09625cffSIan Rogers        "UMask": "0x8"
692*09625cffSIan Rogers    },
693*09625cffSIan Rogers    {
694*09625cffSIan Rogers        "BriefDescription": "Counts cycles where the pipeline is stalled due to serializing operations.",
695*09625cffSIan Rogers        "CollectPEBSRecord": "2",
696*09625cffSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
697*09625cffSIan Rogers        "EventCode": "0xa2",
698*09625cffSIan Rogers        "EventName": "RESOURCE_STALLS.SCOREBOARD",
699*09625cffSIan Rogers        "PEBScounters": "0,1,2,3,4,5,6,7",
700*09625cffSIan Rogers        "SampleAfterValue": "100003",
701*09625cffSIan Rogers        "Speculative": "1",
702*09625cffSIan Rogers        "UMask": "0x2"
703*09625cffSIan Rogers    },
704*09625cffSIan Rogers    {
705cdb29a8fSJin Yao        "BriefDescription": "Cycles when Reservation Station (RS) is empty for the thread",
706cdb29a8fSJin Yao        "CollectPEBSRecord": "2",
707cdb29a8fSJin Yao        "Counter": "0,1,2,3,4,5,6,7",
708cdb29a8fSJin Yao        "EventCode": "0x5e",
709cdb29a8fSJin Yao        "EventName": "RS_EVENTS.EMPTY_CYCLES",
710cdb29a8fSJin Yao        "PEBScounters": "0,1,2,3,4,5,6,7",
711cdb29a8fSJin Yao        "PublicDescription": "Counts cycles during which the reservation station (RS) is empty for this logical processor. This is usually caused when the front-end pipeline runs into stravation periods (e.g. branch mispredictions or i-cache misses)",
712cdb29a8fSJin Yao        "SampleAfterValue": "1000003",
713cdb29a8fSJin Yao        "Speculative": "1",
714cdb29a8fSJin Yao        "UMask": "0x1"
715cdb29a8fSJin Yao    },
716cdb29a8fSJin Yao    {
717cdb29a8fSJin Yao        "BriefDescription": "Counts end of periods where the Reservation Station (RS) was empty.",
718cdb29a8fSJin Yao        "CollectPEBSRecord": "2",
719cdb29a8fSJin Yao        "Counter": "0,1,2,3,4,5,6,7",
720cdb29a8fSJin Yao        "CounterMask": "1",
721cdb29a8fSJin Yao        "EdgeDetect": "1",
722cdb29a8fSJin Yao        "EventCode": "0x5E",
723cdb29a8fSJin Yao        "EventName": "RS_EVENTS.EMPTY_END",
724cdb29a8fSJin Yao        "Invert": "1",
725cdb29a8fSJin Yao        "PEBScounters": "0,1,2,3,4,5,6,7",
726cdb29a8fSJin Yao        "PublicDescription": "Counts end of periods where the Reservation Station (RS) was empty. Could be useful to closely sample on front-end latency issues (see the FRONTEND_RETIRED event of designated precise events)",
727cdb29a8fSJin Yao        "SampleAfterValue": "100003",
728cdb29a8fSJin Yao        "Speculative": "1",
729cdb29a8fSJin Yao        "UMask": "0x1"
730cdb29a8fSJin Yao    },
731cdb29a8fSJin Yao    {
732*09625cffSIan Rogers        "BriefDescription": "Number of uops decoded out of instructions exclusively fetched by decoder 0",
733cdb29a8fSJin Yao        "CollectPEBSRecord": "2",
734cdb29a8fSJin Yao        "Counter": "0,1,2,3",
735*09625cffSIan Rogers        "EventCode": "0x56",
736*09625cffSIan Rogers        "EventName": "UOPS_DECODED.DEC0",
737cdb29a8fSJin Yao        "PEBScounters": "0,1,2,3",
738*09625cffSIan Rogers        "PublicDescription": "Uops exclusively fetched by decoder 0",
739*09625cffSIan Rogers        "SampleAfterValue": "1000003",
740cdb29a8fSJin Yao        "Speculative": "1",
741cdb29a8fSJin Yao        "UMask": "0x1"
742cdb29a8fSJin Yao    },
743cdb29a8fSJin Yao    {
744cdb29a8fSJin Yao        "BriefDescription": "Number of uops executed on port 0",
745cdb29a8fSJin Yao        "CollectPEBSRecord": "2",
746cdb29a8fSJin Yao        "Counter": "0,1,2,3,4,5,6,7",
747cdb29a8fSJin Yao        "EventCode": "0xa1",
748cdb29a8fSJin Yao        "EventName": "UOPS_DISPATCHED.PORT_0",
749cdb29a8fSJin Yao        "PEBScounters": "0,1,2,3,4,5,6,7",
750cdb29a8fSJin Yao        "PublicDescription": "Counts, on the per-thread basis, cycles during which at least one uop is dispatched from the Reservation Station (RS) to port 0.",
751cdb29a8fSJin Yao        "SampleAfterValue": "2000003",
752cdb29a8fSJin Yao        "Speculative": "1",
753cdb29a8fSJin Yao        "UMask": "0x1"
754cdb29a8fSJin Yao    },
755cdb29a8fSJin Yao    {
756cdb29a8fSJin Yao        "BriefDescription": "Number of uops executed on port 1",
757cdb29a8fSJin Yao        "CollectPEBSRecord": "2",
758cdb29a8fSJin Yao        "Counter": "0,1,2,3,4,5,6,7",
759cdb29a8fSJin Yao        "EventCode": "0xa1",
760cdb29a8fSJin Yao        "EventName": "UOPS_DISPATCHED.PORT_1",
761cdb29a8fSJin Yao        "PEBScounters": "0,1,2,3,4,5,6,7",
762cdb29a8fSJin Yao        "PublicDescription": "Counts, on the per-thread basis, cycles during which at least one uop is dispatched from the Reservation Station (RS) to port 1.",
763cdb29a8fSJin Yao        "SampleAfterValue": "2000003",
764cdb29a8fSJin Yao        "Speculative": "1",
765cdb29a8fSJin Yao        "UMask": "0x2"
766cdb29a8fSJin Yao    },
767cdb29a8fSJin Yao    {
768cdb29a8fSJin Yao        "BriefDescription": "Number of uops executed on port 2 and 3",
769cdb29a8fSJin Yao        "CollectPEBSRecord": "2",
770cdb29a8fSJin Yao        "Counter": "0,1,2,3,4,5,6,7",
771cdb29a8fSJin Yao        "EventCode": "0xa1",
772cdb29a8fSJin Yao        "EventName": "UOPS_DISPATCHED.PORT_2_3",
773cdb29a8fSJin Yao        "PEBScounters": "0,1,2,3,4,5,6,7",
774cdb29a8fSJin Yao        "PublicDescription": "Counts, on the per-thread basis, cycles during which at least one uop is dispatched from the Reservation Station (RS) to ports 2 and 3.",
775cdb29a8fSJin Yao        "SampleAfterValue": "2000003",
776cdb29a8fSJin Yao        "Speculative": "1",
777cdb29a8fSJin Yao        "UMask": "0x4"
778cdb29a8fSJin Yao    },
779cdb29a8fSJin Yao    {
780cdb29a8fSJin Yao        "BriefDescription": "Number of uops executed on port 4 and 9",
781cdb29a8fSJin Yao        "CollectPEBSRecord": "2",
782cdb29a8fSJin Yao        "Counter": "0,1,2,3,4,5,6,7",
783cdb29a8fSJin Yao        "EventCode": "0xa1",
784cdb29a8fSJin Yao        "EventName": "UOPS_DISPATCHED.PORT_4_9",
785cdb29a8fSJin Yao        "PEBScounters": "0,1,2,3,4,5,6,7",
786cdb29a8fSJin Yao        "PublicDescription": "Counts, on the per-thread basis, cycles during which at least one uop is dispatched from the Reservation Station (RS) to ports 5 and 9.",
787cdb29a8fSJin Yao        "SampleAfterValue": "2000003",
788cdb29a8fSJin Yao        "Speculative": "1",
789cdb29a8fSJin Yao        "UMask": "0x10"
790cdb29a8fSJin Yao    },
791cdb29a8fSJin Yao    {
792cdb29a8fSJin Yao        "BriefDescription": "Number of uops executed on port 5",
793cdb29a8fSJin Yao        "CollectPEBSRecord": "2",
794cdb29a8fSJin Yao        "Counter": "0,1,2,3,4,5,6,7",
795cdb29a8fSJin Yao        "EventCode": "0xa1",
796cdb29a8fSJin Yao        "EventName": "UOPS_DISPATCHED.PORT_5",
797cdb29a8fSJin Yao        "PEBScounters": "0,1,2,3,4,5,6,7",
798cdb29a8fSJin Yao        "PublicDescription": "Counts, on the per-thread basis, cycles during which at least one uop is dispatched from the Reservation Station (RS) to port 5.",
799cdb29a8fSJin Yao        "SampleAfterValue": "2000003",
800cdb29a8fSJin Yao        "Speculative": "1",
801cdb29a8fSJin Yao        "UMask": "0x20"
802cdb29a8fSJin Yao    },
803cdb29a8fSJin Yao    {
804cdb29a8fSJin Yao        "BriefDescription": "Number of uops executed on port 6",
805cdb29a8fSJin Yao        "CollectPEBSRecord": "2",
806cdb29a8fSJin Yao        "Counter": "0,1,2,3,4,5,6,7",
807cdb29a8fSJin Yao        "EventCode": "0xa1",
808cdb29a8fSJin Yao        "EventName": "UOPS_DISPATCHED.PORT_6",
809cdb29a8fSJin Yao        "PEBScounters": "0,1,2,3,4,5,6,7",
810cdb29a8fSJin Yao        "PublicDescription": "Counts, on the per-thread basis, cycles during which at least one uop is dispatched from the Reservation Station (RS) to port 6.",
811cdb29a8fSJin Yao        "SampleAfterValue": "2000003",
812cdb29a8fSJin Yao        "Speculative": "1",
813cdb29a8fSJin Yao        "UMask": "0x40"
814cdb29a8fSJin Yao    },
815cdb29a8fSJin Yao    {
816cdb29a8fSJin Yao        "BriefDescription": "Number of uops executed on port 7 and 8",
817cdb29a8fSJin Yao        "CollectPEBSRecord": "2",
818cdb29a8fSJin Yao        "Counter": "0,1,2,3,4,5,6,7",
819cdb29a8fSJin Yao        "EventCode": "0xa1",
820cdb29a8fSJin Yao        "EventName": "UOPS_DISPATCHED.PORT_7_8",
821cdb29a8fSJin Yao        "PEBScounters": "0,1,2,3,4,5,6,7",
822cdb29a8fSJin Yao        "PublicDescription": "Counts, on the per-thread basis, cycles during which at least one uop is dispatched from the Reservation Station (RS) to ports 7 and 8.",
823cdb29a8fSJin Yao        "SampleAfterValue": "2000003",
824cdb29a8fSJin Yao        "Speculative": "1",
825cdb29a8fSJin Yao        "UMask": "0x80"
826cdb29a8fSJin Yao    },
827cdb29a8fSJin Yao    {
828*09625cffSIan Rogers        "BriefDescription": "Cycles at least 1 micro-op is executed from any thread on physical core.",
829cdb29a8fSJin Yao        "CollectPEBSRecord": "2",
830cdb29a8fSJin Yao        "Counter": "0,1,2,3,4,5,6,7",
831cdb29a8fSJin Yao        "CounterMask": "1",
832cdb29a8fSJin Yao        "EventCode": "0xB1",
833*09625cffSIan Rogers        "EventName": "UOPS_EXECUTED.CORE_CYCLES_GE_1",
834cdb29a8fSJin Yao        "PEBScounters": "0,1,2,3,4,5,6,7",
835*09625cffSIan Rogers        "PublicDescription": "Counts cycles when at least 1 micro-op is executed from any thread on physical core.",
836cdb29a8fSJin Yao        "SampleAfterValue": "2000003",
837cdb29a8fSJin Yao        "Speculative": "1",
838*09625cffSIan Rogers        "UMask": "0x2"
839*09625cffSIan Rogers    },
840*09625cffSIan Rogers    {
841*09625cffSIan Rogers        "BriefDescription": "Cycles at least 2 micro-op is executed from any thread on physical core.",
842*09625cffSIan Rogers        "CollectPEBSRecord": "2",
843*09625cffSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
844*09625cffSIan Rogers        "CounterMask": "2",
845*09625cffSIan Rogers        "EventCode": "0xB1",
846*09625cffSIan Rogers        "EventName": "UOPS_EXECUTED.CORE_CYCLES_GE_2",
847*09625cffSIan Rogers        "PEBScounters": "0,1,2,3,4,5,6,7",
848*09625cffSIan Rogers        "PublicDescription": "Counts cycles when at least 2 micro-ops are executed from any thread on physical core.",
849*09625cffSIan Rogers        "SampleAfterValue": "2000003",
850*09625cffSIan Rogers        "Speculative": "1",
851*09625cffSIan Rogers        "UMask": "0x2"
852*09625cffSIan Rogers    },
853*09625cffSIan Rogers    {
854*09625cffSIan Rogers        "BriefDescription": "Cycles at least 3 micro-op is executed from any thread on physical core.",
855*09625cffSIan Rogers        "CollectPEBSRecord": "2",
856*09625cffSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
857*09625cffSIan Rogers        "CounterMask": "3",
858*09625cffSIan Rogers        "EventCode": "0xB1",
859*09625cffSIan Rogers        "EventName": "UOPS_EXECUTED.CORE_CYCLES_GE_3",
860*09625cffSIan Rogers        "PEBScounters": "0,1,2,3,4,5,6,7",
861*09625cffSIan Rogers        "PublicDescription": "Counts cycles when at least 3 micro-ops are executed from any thread on physical core.",
862*09625cffSIan Rogers        "SampleAfterValue": "2000003",
863*09625cffSIan Rogers        "Speculative": "1",
864*09625cffSIan Rogers        "UMask": "0x2"
865*09625cffSIan Rogers    },
866*09625cffSIan Rogers    {
867*09625cffSIan Rogers        "BriefDescription": "Cycles at least 4 micro-op is executed from any thread on physical core.",
868*09625cffSIan Rogers        "CollectPEBSRecord": "2",
869*09625cffSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
870*09625cffSIan Rogers        "CounterMask": "4",
871*09625cffSIan Rogers        "EventCode": "0xB1",
872*09625cffSIan Rogers        "EventName": "UOPS_EXECUTED.CORE_CYCLES_GE_4",
873*09625cffSIan Rogers        "PEBScounters": "0,1,2,3,4,5,6,7",
874*09625cffSIan Rogers        "PublicDescription": "Counts cycles when at least 4 micro-ops are executed from any thread on physical core.",
875*09625cffSIan Rogers        "SampleAfterValue": "2000003",
876*09625cffSIan Rogers        "Speculative": "1",
877*09625cffSIan Rogers        "UMask": "0x2"
878cdb29a8fSJin Yao    },
879cdb29a8fSJin Yao    {
880cdb29a8fSJin Yao        "BriefDescription": "Cycles where at least 1 uop was executed per-thread",
881cdb29a8fSJin Yao        "CollectPEBSRecord": "2",
882cdb29a8fSJin Yao        "Counter": "0,1,2,3,4,5,6,7",
883cdb29a8fSJin Yao        "CounterMask": "1",
884cdb29a8fSJin Yao        "EventCode": "0xb1",
885cdb29a8fSJin Yao        "EventName": "UOPS_EXECUTED.CYCLES_GE_1",
886cdb29a8fSJin Yao        "PEBScounters": "0,1,2,3,4,5,6,7",
887cdb29a8fSJin Yao        "PublicDescription": "Cycles where at least 1 uop was executed per-thread.",
888cdb29a8fSJin Yao        "SampleAfterValue": "2000003",
889cdb29a8fSJin Yao        "Speculative": "1",
890cdb29a8fSJin Yao        "UMask": "0x1"
891cdb29a8fSJin Yao    },
892cdb29a8fSJin Yao    {
893cdb29a8fSJin Yao        "BriefDescription": "Cycles where at least 2 uops were executed per-thread",
894cdb29a8fSJin Yao        "CollectPEBSRecord": "2",
895cdb29a8fSJin Yao        "Counter": "0,1,2,3,4,5,6,7",
896cdb29a8fSJin Yao        "CounterMask": "2",
897cdb29a8fSJin Yao        "EventCode": "0xb1",
898cdb29a8fSJin Yao        "EventName": "UOPS_EXECUTED.CYCLES_GE_2",
899cdb29a8fSJin Yao        "PEBScounters": "0,1,2,3,4,5,6,7",
900cdb29a8fSJin Yao        "PublicDescription": "Cycles where at least 2 uops were executed per-thread.",
901cdb29a8fSJin Yao        "SampleAfterValue": "2000003",
902cdb29a8fSJin Yao        "Speculative": "1",
903cdb29a8fSJin Yao        "UMask": "0x1"
904cdb29a8fSJin Yao    },
905cdb29a8fSJin Yao    {
906cdb29a8fSJin Yao        "BriefDescription": "Cycles where at least 3 uops were executed per-thread",
907cdb29a8fSJin Yao        "CollectPEBSRecord": "2",
908cdb29a8fSJin Yao        "Counter": "0,1,2,3,4,5,6,7",
909cdb29a8fSJin Yao        "CounterMask": "3",
910cdb29a8fSJin Yao        "EventCode": "0xb1",
911cdb29a8fSJin Yao        "EventName": "UOPS_EXECUTED.CYCLES_GE_3",
912cdb29a8fSJin Yao        "PEBScounters": "0,1,2,3,4,5,6,7",
913cdb29a8fSJin Yao        "PublicDescription": "Cycles where at least 3 uops were executed per-thread.",
914cdb29a8fSJin Yao        "SampleAfterValue": "2000003",
915cdb29a8fSJin Yao        "Speculative": "1",
916cdb29a8fSJin Yao        "UMask": "0x1"
917cdb29a8fSJin Yao    },
918cdb29a8fSJin Yao    {
919cdb29a8fSJin Yao        "BriefDescription": "Cycles where at least 4 uops were executed per-thread",
920cdb29a8fSJin Yao        "CollectPEBSRecord": "2",
921cdb29a8fSJin Yao        "Counter": "0,1,2,3,4,5,6,7",
922cdb29a8fSJin Yao        "CounterMask": "4",
923cdb29a8fSJin Yao        "EventCode": "0xb1",
924cdb29a8fSJin Yao        "EventName": "UOPS_EXECUTED.CYCLES_GE_4",
925cdb29a8fSJin Yao        "PEBScounters": "0,1,2,3,4,5,6,7",
926cdb29a8fSJin Yao        "PublicDescription": "Cycles where at least 4 uops were executed per-thread.",
927cdb29a8fSJin Yao        "SampleAfterValue": "2000003",
928cdb29a8fSJin Yao        "Speculative": "1",
929cdb29a8fSJin Yao        "UMask": "0x1"
930cdb29a8fSJin Yao    },
931cdb29a8fSJin Yao    {
932*09625cffSIan Rogers        "BriefDescription": "Counts number of cycles no uops were dispatched to be executed on this thread.",
933cdb29a8fSJin Yao        "CollectPEBSRecord": "2",
934cdb29a8fSJin Yao        "Counter": "0,1,2,3,4,5,6,7",
935cdb29a8fSJin Yao        "CounterMask": "1",
936cdb29a8fSJin Yao        "EventCode": "0xB1",
937*09625cffSIan Rogers        "EventName": "UOPS_EXECUTED.STALL_CYCLES",
938*09625cffSIan Rogers        "Invert": "1",
939cdb29a8fSJin Yao        "PEBScounters": "0,1,2,3,4,5,6,7",
940*09625cffSIan Rogers        "PublicDescription": "Counts cycles during which no uops were dispatched from the Reservation Station (RS) per thread.",
941cdb29a8fSJin Yao        "SampleAfterValue": "2000003",
942cdb29a8fSJin Yao        "Speculative": "1",
943*09625cffSIan Rogers        "UMask": "0x1"
944cdb29a8fSJin Yao    },
945cdb29a8fSJin Yao    {
946*09625cffSIan Rogers        "BriefDescription": "Counts the number of uops to be executed per-thread each cycle.",
947cdb29a8fSJin Yao        "CollectPEBSRecord": "2",
948cdb29a8fSJin Yao        "Counter": "0,1,2,3,4,5,6,7",
949*09625cffSIan Rogers        "EventCode": "0xb1",
950*09625cffSIan Rogers        "EventName": "UOPS_EXECUTED.THREAD",
951cdb29a8fSJin Yao        "PEBScounters": "0,1,2,3,4,5,6,7",
952cdb29a8fSJin Yao        "SampleAfterValue": "2000003",
953cdb29a8fSJin Yao        "Speculative": "1",
954*09625cffSIan Rogers        "UMask": "0x1"
955cdb29a8fSJin Yao    },
956cdb29a8fSJin Yao    {
957cdb29a8fSJin Yao        "BriefDescription": "Counts the number of x87 uops dispatched.",
958cdb29a8fSJin Yao        "CollectPEBSRecord": "2",
959cdb29a8fSJin Yao        "Counter": "0,1,2,3,4,5,6,7",
960cdb29a8fSJin Yao        "EventCode": "0xB1",
961cdb29a8fSJin Yao        "EventName": "UOPS_EXECUTED.X87",
962cdb29a8fSJin Yao        "PEBScounters": "0,1,2,3,4,5,6,7",
963cdb29a8fSJin Yao        "PublicDescription": "Counts the number of x87 uops executed.",
964cdb29a8fSJin Yao        "SampleAfterValue": "2000003",
965cdb29a8fSJin Yao        "Speculative": "1",
966cdb29a8fSJin Yao        "UMask": "0x10"
967cdb29a8fSJin Yao    },
968cdb29a8fSJin Yao    {
969*09625cffSIan Rogers        "BriefDescription": "Uops that RAT issues to RS",
970cdb29a8fSJin Yao        "CollectPEBSRecord": "2",
971cdb29a8fSJin Yao        "Counter": "0,1,2,3,4,5,6,7",
972*09625cffSIan Rogers        "EventCode": "0x0e",
973*09625cffSIan Rogers        "EventName": "UOPS_ISSUED.ANY",
974cdb29a8fSJin Yao        "PEBScounters": "0,1,2,3,4,5,6,7",
975*09625cffSIan Rogers        "PublicDescription": "Counts the number of uops that the Resource Allocation Table (RAT) issues to the Reservation Station (RS).",
976*09625cffSIan Rogers        "SampleAfterValue": "2000003",
977*09625cffSIan Rogers        "Speculative": "1",
978*09625cffSIan Rogers        "UMask": "0x1"
979cdb29a8fSJin Yao    },
980cdb29a8fSJin Yao    {
981*09625cffSIan Rogers        "BriefDescription": "Cycles when RAT does not issue Uops to RS for the thread",
982cdb29a8fSJin Yao        "CollectPEBSRecord": "2",
983cdb29a8fSJin Yao        "Counter": "0,1,2,3,4,5,6,7",
984*09625cffSIan Rogers        "CounterMask": "1",
985*09625cffSIan Rogers        "EventCode": "0x0E",
986*09625cffSIan Rogers        "EventName": "UOPS_ISSUED.STALL_CYCLES",
987cdb29a8fSJin Yao        "Invert": "1",
988cdb29a8fSJin Yao        "PEBScounters": "0,1,2,3,4,5,6,7",
989*09625cffSIan Rogers        "PublicDescription": "Counts cycles during which the Resource Allocation Table (RAT) does not issue any Uops to the reservation station (RS) for the current thread.",
990cdb29a8fSJin Yao        "SampleAfterValue": "1000003",
991*09625cffSIan Rogers        "Speculative": "1",
992*09625cffSIan Rogers        "UMask": "0x1"
993*09625cffSIan Rogers    },
994*09625cffSIan Rogers    {
995*09625cffSIan Rogers        "BriefDescription": "Uops inserted at issue-stage in order to preserve upper bits of vector registers.",
996*09625cffSIan Rogers        "CollectPEBSRecord": "2",
997*09625cffSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
998*09625cffSIan Rogers        "EventCode": "0x0e",
999*09625cffSIan Rogers        "EventName": "UOPS_ISSUED.VECTOR_WIDTH_MISMATCH",
1000*09625cffSIan Rogers        "PEBScounters": "0,1,2,3,4,5,6,7",
1001*09625cffSIan Rogers        "PublicDescription": "Counts the number of Blend Uops issued by the Resource Allocation Table (RAT) to the reservation station (RS) in order to preserve upper bits of vector registers. Starting with the Skylake microarchitecture, these Blend uops are needed since every Intel SSE instruction executed in Dirty Upper State needs to preserve bits 128-255 of the destination register. For more information, refer to Mixing Intel AVX and Intel SSE Code section of the Optimization Guide.",
1002*09625cffSIan Rogers        "SampleAfterValue": "100003",
1003*09625cffSIan Rogers        "Speculative": "1",
1004cdb29a8fSJin Yao        "UMask": "0x2"
1005cdb29a8fSJin Yao    },
1006cdb29a8fSJin Yao    {
1007cdb29a8fSJin Yao        "BriefDescription": "Retirement slots used.",
1008cdb29a8fSJin Yao        "CollectPEBSRecord": "2",
1009cdb29a8fSJin Yao        "Counter": "0,1,2,3,4,5,6,7",
1010cdb29a8fSJin Yao        "EventCode": "0xc2",
1011cdb29a8fSJin Yao        "EventName": "UOPS_RETIRED.SLOTS",
1012cdb29a8fSJin Yao        "PEBScounters": "0,1,2,3,4,5,6,7",
1013cdb29a8fSJin Yao        "PublicDescription": "Counts the retirement slots used each cycle.",
1014cdb29a8fSJin Yao        "SampleAfterValue": "2000003",
1015cdb29a8fSJin Yao        "UMask": "0x2"
1016cdb29a8fSJin Yao    },
1017cdb29a8fSJin Yao    {
1018*09625cffSIan Rogers        "BriefDescription": "Cycles without actually retired uops.",
1019cdb29a8fSJin Yao        "CollectPEBSRecord": "2",
1020cdb29a8fSJin Yao        "Counter": "0,1,2,3,4,5,6,7",
1021cdb29a8fSJin Yao        "CounterMask": "1",
1022*09625cffSIan Rogers        "EventCode": "0xc2",
1023*09625cffSIan Rogers        "EventName": "UOPS_RETIRED.STALL_CYCLES",
1024*09625cffSIan Rogers        "Invert": "1",
1025cdb29a8fSJin Yao        "PEBScounters": "0,1,2,3,4,5,6,7",
1026*09625cffSIan Rogers        "PublicDescription": "This event counts cycles without actually retired uops.",
1027*09625cffSIan Rogers        "SampleAfterValue": "1000003",
1028cdb29a8fSJin Yao        "Speculative": "1",
1029cdb29a8fSJin Yao        "UMask": "0x2"
1030cdb29a8fSJin Yao    },
1031cdb29a8fSJin Yao    {
1032*09625cffSIan Rogers        "BriefDescription": "Cycles with less than 10 actually retired uops.",
1033cdb29a8fSJin Yao        "CollectPEBSRecord": "2",
1034cdb29a8fSJin Yao        "Counter": "0,1,2,3,4,5,6,7",
1035*09625cffSIan Rogers        "CounterMask": "10",
1036*09625cffSIan Rogers        "EventCode": "0xc2",
1037*09625cffSIan Rogers        "EventName": "UOPS_RETIRED.TOTAL_CYCLES",
1038*09625cffSIan Rogers        "Invert": "1",
1039cdb29a8fSJin Yao        "PEBScounters": "0,1,2,3,4,5,6,7",
1040*09625cffSIan Rogers        "PublicDescription": "Counts the number of cycles using always true condition (uops_ret < 16) applied to non PEBS uops retired event.",
1041*09625cffSIan Rogers        "SampleAfterValue": "1000003",
1042cdb29a8fSJin Yao        "UMask": "0x2"
1043cdb29a8fSJin Yao    }
1044cdb29a8fSJin Yao]