1b115df07SHaiyan Song[
2b115df07SHaiyan Song    {
3dd7415ceSIan Rogers        "BriefDescription": "Cycles when divide unit is busy executing divide or square root operations.",
4dd7415ceSIan Rogers        "CounterMask": "1",
5dd7415ceSIan Rogers        "EventCode": "0x14",
6dd7415ceSIan Rogers        "EventName": "ARITH.DIVIDER_ACTIVE",
7dd7415ceSIan Rogers        "PublicDescription": "Counts cycles when divide unit is busy executing divide or square root operations. Accounts for integer and floating-point operations.",
8dd7415ceSIan Rogers        "SampleAfterValue": "1000003",
9dd7415ceSIan Rogers        "UMask": "0x9"
10dd7415ceSIan Rogers    },
11dd7415ceSIan Rogers    {
122c77f36aSIan Rogers        "BriefDescription": "Number of occurrences where a microcode assist is invoked by hardware.",
132c77f36aSIan Rogers        "EventCode": "0xc1",
142c77f36aSIan Rogers        "EventName": "ASSISTS.ANY",
152c77f36aSIan Rogers        "PublicDescription": "Counts the number of occurrences where a microcode assist is invoked by hardware Examples include AD (page Access Dirty), FP and AVX related assists.",
162c77f36aSIan Rogers        "SampleAfterValue": "100003",
172c77f36aSIan Rogers        "UMask": "0x7"
182c77f36aSIan Rogers    },
192c77f36aSIan Rogers    {
20dd7415ceSIan Rogers        "BriefDescription": "All branch instructions retired.",
21dd7415ceSIan Rogers        "EventCode": "0xc4",
22dd7415ceSIan Rogers        "EventName": "BR_INST_RETIRED.ALL_BRANCHES",
2371fbc431SJin Yao        "PEBS": "1",
24dd7415ceSIan Rogers        "PublicDescription": "Counts all branch instructions retired.",
25dd7415ceSIan Rogers        "SampleAfterValue": "400009"
26b115df07SHaiyan Song    },
27b115df07SHaiyan Song    {
28dd7415ceSIan Rogers        "BriefDescription": "Conditional branch instructions retired.",
29dd7415ceSIan Rogers        "EventCode": "0xc4",
30dd7415ceSIan Rogers        "EventName": "BR_INST_RETIRED.COND",
31dd7415ceSIan Rogers        "PEBS": "1",
32dd7415ceSIan Rogers        "PublicDescription": "Counts conditional branch instructions retired.",
33dd7415ceSIan Rogers        "SampleAfterValue": "400009",
34dd7415ceSIan Rogers        "UMask": "0x11"
35b115df07SHaiyan Song    },
36b115df07SHaiyan Song    {
3771fbc431SJin Yao        "BriefDescription": "Not taken branch instructions retired.",
38b115df07SHaiyan Song        "EventCode": "0xc4",
39b115df07SHaiyan Song        "EventName": "BR_INST_RETIRED.COND_NTAKEN",
4071fbc431SJin Yao        "PEBS": "1",
4171fbc431SJin Yao        "PublicDescription": "Counts not taken branch instructions retired.",
42b115df07SHaiyan Song        "SampleAfterValue": "400009",
4371fbc431SJin Yao        "UMask": "0x10"
44b115df07SHaiyan Song    },
45b115df07SHaiyan Song    {
46dd7415ceSIan Rogers        "BriefDescription": "Taken conditional branch instructions retired.",
47b115df07SHaiyan Song        "EventCode": "0xc4",
48dd7415ceSIan Rogers        "EventName": "BR_INST_RETIRED.COND_TAKEN",
4971fbc431SJin Yao        "PEBS": "1",
50dd7415ceSIan Rogers        "PublicDescription": "Counts taken conditional branch instructions retired.",
5171fbc431SJin Yao        "SampleAfterValue": "400009",
5271fbc431SJin Yao        "UMask": "0x1"
53b115df07SHaiyan Song    },
54b115df07SHaiyan Song    {
5571fbc431SJin Yao        "BriefDescription": "Far branch instructions retired.",
5671fbc431SJin Yao        "EventCode": "0xc4",
5771fbc431SJin Yao        "EventName": "BR_INST_RETIRED.FAR_BRANCH",
5871fbc431SJin Yao        "PEBS": "1",
5971fbc431SJin Yao        "PublicDescription": "Counts far branch instructions retired.",
6071fbc431SJin Yao        "SampleAfterValue": "100007",
6171fbc431SJin Yao        "UMask": "0x40"
6271fbc431SJin Yao    },
6371fbc431SJin Yao    {
64dd7415ceSIan Rogers        "BriefDescription": "Indirect near branch instructions retired (excluding returns)",
6571fbc431SJin Yao        "EventCode": "0xc4",
66dd7415ceSIan Rogers        "EventName": "BR_INST_RETIRED.INDIRECT",
6771fbc431SJin Yao        "PEBS": "1",
68dd7415ceSIan Rogers        "PublicDescription": "Counts near indirect branch instructions retired excluding returns. TSX abort is an indirect branch.",
69dd7415ceSIan Rogers        "SampleAfterValue": "100003",
70dd7415ceSIan Rogers        "UMask": "0x80"
7171fbc431SJin Yao    },
7271fbc431SJin Yao    {
7371fbc431SJin Yao        "BriefDescription": "Direct and indirect near call instructions retired.",
7471fbc431SJin Yao        "EventCode": "0xc4",
7571fbc431SJin Yao        "EventName": "BR_INST_RETIRED.NEAR_CALL",
7671fbc431SJin Yao        "PEBS": "1",
7771fbc431SJin Yao        "PublicDescription": "Counts both direct and indirect near call instructions retired.",
7871fbc431SJin Yao        "SampleAfterValue": "100007",
7971fbc431SJin Yao        "UMask": "0x2"
8071fbc431SJin Yao    },
8171fbc431SJin Yao    {
82dd7415ceSIan Rogers        "BriefDescription": "Return instructions retired.",
8371fbc431SJin Yao        "EventCode": "0xc4",
84dd7415ceSIan Rogers        "EventName": "BR_INST_RETIRED.NEAR_RETURN",
8571fbc431SJin Yao        "PEBS": "1",
86dd7415ceSIan Rogers        "PublicDescription": "Counts return instructions retired.",
87dd7415ceSIan Rogers        "SampleAfterValue": "100007",
88dd7415ceSIan Rogers        "UMask": "0x8"
8971fbc431SJin Yao    },
9071fbc431SJin Yao    {
91dd7415ceSIan Rogers        "BriefDescription": "Taken branch instructions retired.",
92dd7415ceSIan Rogers        "EventCode": "0xc4",
93dd7415ceSIan Rogers        "EventName": "BR_INST_RETIRED.NEAR_TAKEN",
94dd7415ceSIan Rogers        "PEBS": "1",
95dd7415ceSIan Rogers        "PublicDescription": "Counts taken branch instructions retired.",
96dd7415ceSIan Rogers        "SampleAfterValue": "400009",
97dd7415ceSIan Rogers        "UMask": "0x20"
98dd7415ceSIan Rogers    },
99dd7415ceSIan Rogers    {
100dd7415ceSIan Rogers        "BriefDescription": "All mispredicted branch instructions retired.",
101dd7415ceSIan Rogers        "EventCode": "0xc5",
102dd7415ceSIan Rogers        "EventName": "BR_MISP_RETIRED.ALL_BRANCHES",
103dd7415ceSIan Rogers        "PEBS": "1",
104dd7415ceSIan 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.",
105dd7415ceSIan Rogers        "SampleAfterValue": "50021"
106dd7415ceSIan Rogers    },
107dd7415ceSIan Rogers    {
108dd7415ceSIan Rogers        "BriefDescription": "Mispredicted conditional branch instructions retired.",
109dd7415ceSIan Rogers        "EventCode": "0xc5",
110dd7415ceSIan Rogers        "EventName": "BR_MISP_RETIRED.COND",
111dd7415ceSIan Rogers        "PEBS": "1",
112dd7415ceSIan Rogers        "PublicDescription": "Counts mispredicted conditional branch instructions retired.",
113dd7415ceSIan Rogers        "SampleAfterValue": "50021",
114dd7415ceSIan Rogers        "UMask": "0x11"
115dd7415ceSIan Rogers    },
116dd7415ceSIan Rogers    {
117dd7415ceSIan Rogers        "BriefDescription": "Mispredicted non-taken conditional branch instructions retired.",
118dd7415ceSIan Rogers        "EventCode": "0xc5",
119dd7415ceSIan Rogers        "EventName": "BR_MISP_RETIRED.COND_NTAKEN",
120dd7415ceSIan Rogers        "PEBS": "1",
121dd7415ceSIan Rogers        "PublicDescription": "Counts the number of conditional branch instructions retired that were mispredicted and the branch direction was not taken.",
122dd7415ceSIan Rogers        "SampleAfterValue": "50021",
123dd7415ceSIan Rogers        "UMask": "0x10"
124dd7415ceSIan Rogers    },
125dd7415ceSIan Rogers    {
1268fb4ddf4SIan Rogers        "BriefDescription": "number of branch instructions retired that were mispredicted and taken.",
127dd7415ceSIan Rogers        "EventCode": "0xc5",
128dd7415ceSIan Rogers        "EventName": "BR_MISP_RETIRED.COND_TAKEN",
129dd7415ceSIan Rogers        "PEBS": "1",
130dd7415ceSIan Rogers        "PublicDescription": "Counts taken conditional mispredicted branch instructions retired.",
131dd7415ceSIan Rogers        "SampleAfterValue": "50021",
13271fbc431SJin Yao        "UMask": "0x1"
13371fbc431SJin Yao    },
13471fbc431SJin Yao    {
135dd7415ceSIan Rogers        "BriefDescription": "All miss-predicted indirect branch instructions retired (excluding RETs. TSX aborts is considered indirect branch).",
136dd7415ceSIan Rogers        "EventCode": "0xc5",
137dd7415ceSIan Rogers        "EventName": "BR_MISP_RETIRED.INDIRECT",
138dd7415ceSIan Rogers        "PEBS": "1",
139dd7415ceSIan Rogers        "PublicDescription": "Counts all miss-predicted indirect branch instructions retired (excluding RETs. TSX aborts is considered indirect branch).",
140dd7415ceSIan Rogers        "SampleAfterValue": "50021",
141dd7415ceSIan Rogers        "UMask": "0x80"
142dd7415ceSIan Rogers    },
143dd7415ceSIan Rogers    {
144dd7415ceSIan Rogers        "BriefDescription": "Mispredicted indirect CALL instructions retired.",
145dd7415ceSIan Rogers        "EventCode": "0xc5",
146dd7415ceSIan Rogers        "EventName": "BR_MISP_RETIRED.INDIRECT_CALL",
147dd7415ceSIan Rogers        "PEBS": "1",
148dd7415ceSIan Rogers        "PublicDescription": "Counts retired mispredicted indirect (near taken) CALL instructions, including both register and memory indirect.",
149dd7415ceSIan Rogers        "SampleAfterValue": "50021",
150dd7415ceSIan Rogers        "UMask": "0x2"
151dd7415ceSIan Rogers    },
152dd7415ceSIan Rogers    {
153dd7415ceSIan Rogers        "BriefDescription": "Number of near branch instructions retired that were mispredicted and taken.",
154dd7415ceSIan Rogers        "EventCode": "0xc5",
155dd7415ceSIan Rogers        "EventName": "BR_MISP_RETIRED.NEAR_TAKEN",
156dd7415ceSIan Rogers        "PEBS": "1",
157dd7415ceSIan Rogers        "PublicDescription": "Counts number of near branch instructions retired that were mispredicted and taken.",
158dd7415ceSIan Rogers        "SampleAfterValue": "50021",
159dd7415ceSIan Rogers        "UMask": "0x20"
160dd7415ceSIan Rogers    },
161dd7415ceSIan Rogers    {
16271fbc431SJin Yao        "BriefDescription": "Cycle counts are evenly distributed between active threads in the Core.",
16371fbc431SJin Yao        "EventCode": "0xec",
16471fbc431SJin Yao        "EventName": "CPU_CLK_UNHALTED.DISTRIBUTED",
16571fbc431SJin Yao        "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.",
16671fbc431SJin Yao        "SampleAfterValue": "2000003",
16771fbc431SJin Yao        "UMask": "0x2"
16871fbc431SJin Yao    },
16971fbc431SJin Yao    {
17071fbc431SJin Yao        "BriefDescription": "Core crystal clock cycles when this thread is unhalted and the other thread is halted.",
17171fbc431SJin Yao        "EventCode": "0x3C",
17271fbc431SJin Yao        "EventName": "CPU_CLK_UNHALTED.ONE_THREAD_ACTIVE",
17371fbc431SJin Yao        "PublicDescription": "Counts Core crystal clock cycles when current thread is unhalted and the other thread is halted.",
17471fbc431SJin Yao        "SampleAfterValue": "25003",
17571fbc431SJin Yao        "UMask": "0x2"
17671fbc431SJin Yao    },
17771fbc431SJin Yao    {
178dd7415ceSIan Rogers        "BriefDescription": "Core crystal clock cycles. Cycle counts are evenly distributed between active threads in the Core.",
179dd7415ceSIan Rogers        "EventCode": "0x3c",
180dd7415ceSIan Rogers        "EventName": "CPU_CLK_UNHALTED.REF_DISTRIBUTED",
181dd7415ceSIan Rogers        "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.",
182dd7415ceSIan Rogers        "SampleAfterValue": "2000003",
183dd7415ceSIan Rogers        "UMask": "0x8"
184dd7415ceSIan Rogers    },
185dd7415ceSIan Rogers    {
186dd7415ceSIan Rogers        "BriefDescription": "Reference cycles when the core is not in halt state.",
187dd7415ceSIan Rogers        "EventName": "CPU_CLK_UNHALTED.REF_TSC",
188dd7415ceSIan 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.",
189dd7415ceSIan Rogers        "SampleAfterValue": "2000003",
190dd7415ceSIan Rogers        "UMask": "0x3"
191dd7415ceSIan Rogers    },
192dd7415ceSIan Rogers    {
193dd7415ceSIan Rogers        "BriefDescription": "Core crystal clock cycles when the thread is unhalted.",
194dd7415ceSIan Rogers        "EventCode": "0x3C",
195dd7415ceSIan Rogers        "EventName": "CPU_CLK_UNHALTED.REF_XCLK",
196dd7415ceSIan Rogers        "PublicDescription": "Counts core crystal clock cycles when the thread is unhalted.",
197dd7415ceSIan Rogers        "SampleAfterValue": "25003",
198dd7415ceSIan Rogers        "UMask": "0x1"
199dd7415ceSIan Rogers    },
200dd7415ceSIan Rogers    {
201dd7415ceSIan Rogers        "BriefDescription": "Core cycles when the thread is not in halt state",
202dd7415ceSIan Rogers        "EventName": "CPU_CLK_UNHALTED.THREAD",
203dd7415ceSIan 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.",
204dd7415ceSIan Rogers        "SampleAfterValue": "2000003",
205dd7415ceSIan Rogers        "UMask": "0x2"
206dd7415ceSIan Rogers    },
207dd7415ceSIan Rogers    {
20871fbc431SJin Yao        "BriefDescription": "Thread cycles when thread is not in halt state",
20971fbc431SJin Yao        "EventCode": "0x3C",
21071fbc431SJin Yao        "EventName": "CPU_CLK_UNHALTED.THREAD_P",
21171fbc431SJin Yao        "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.",
212*f8473086SIan Rogers        "SampleAfterValue": "2000003"
21371fbc431SJin Yao    },
21471fbc431SJin Yao    {
215dd7415ceSIan Rogers        "BriefDescription": "Cycles while L1 cache miss demand load is outstanding.",
216dd7415ceSIan Rogers        "CounterMask": "8",
217dd7415ceSIan Rogers        "EventCode": "0xA3",
218dd7415ceSIan Rogers        "EventName": "CYCLE_ACTIVITY.CYCLES_L1D_MISS",
219dd7415ceSIan Rogers        "SampleAfterValue": "1000003",
220dd7415ceSIan Rogers        "UMask": "0x8"
22171fbc431SJin Yao    },
22271fbc431SJin Yao    {
223dd7415ceSIan Rogers        "BriefDescription": "Cycles while L2 cache miss demand load is outstanding.",
224dd7415ceSIan Rogers        "CounterMask": "1",
225dd7415ceSIan Rogers        "EventCode": "0xA3",
226dd7415ceSIan Rogers        "EventName": "CYCLE_ACTIVITY.CYCLES_L2_MISS",
227dd7415ceSIan Rogers        "SampleAfterValue": "1000003",
22871fbc431SJin Yao        "UMask": "0x1"
22971fbc431SJin Yao    },
23071fbc431SJin Yao    {
231dd7415ceSIan Rogers        "BriefDescription": "Cycles while memory subsystem has an outstanding load.",
232dd7415ceSIan Rogers        "CounterMask": "16",
233dd7415ceSIan Rogers        "EventCode": "0xA3",
234dd7415ceSIan Rogers        "EventName": "CYCLE_ACTIVITY.CYCLES_MEM_ANY",
235dd7415ceSIan Rogers        "SampleAfterValue": "1000003",
236dd7415ceSIan Rogers        "UMask": "0x10"
23771fbc431SJin Yao    },
23871fbc431SJin Yao    {
239dd7415ceSIan Rogers        "BriefDescription": "Execution stalls while L1 cache miss demand load is outstanding.",
240dd7415ceSIan Rogers        "CounterMask": "12",
241dd7415ceSIan Rogers        "EventCode": "0xA3",
242dd7415ceSIan Rogers        "EventName": "CYCLE_ACTIVITY.STALLS_L1D_MISS",
243dd7415ceSIan Rogers        "SampleAfterValue": "1000003",
244dd7415ceSIan Rogers        "UMask": "0xc"
245dd7415ceSIan Rogers    },
246dd7415ceSIan Rogers    {
247dd7415ceSIan Rogers        "BriefDescription": "Execution stalls while L2 cache miss demand load is outstanding.",
248dd7415ceSIan Rogers        "CounterMask": "5",
249dd7415ceSIan Rogers        "EventCode": "0xa3",
250dd7415ceSIan Rogers        "EventName": "CYCLE_ACTIVITY.STALLS_L2_MISS",
251dd7415ceSIan Rogers        "SampleAfterValue": "1000003",
252dd7415ceSIan Rogers        "UMask": "0x5"
253dd7415ceSIan Rogers    },
254dd7415ceSIan Rogers    {
255dd7415ceSIan Rogers        "BriefDescription": "Execution stalls while memory subsystem has an outstanding load.",
256dd7415ceSIan Rogers        "CounterMask": "20",
257dd7415ceSIan Rogers        "EventCode": "0xa3",
258dd7415ceSIan Rogers        "EventName": "CYCLE_ACTIVITY.STALLS_MEM_ANY",
259dd7415ceSIan Rogers        "SampleAfterValue": "1000003",
260dd7415ceSIan Rogers        "UMask": "0x14"
261dd7415ceSIan Rogers    },
262dd7415ceSIan Rogers    {
263dd7415ceSIan Rogers        "BriefDescription": "Total execution stalls.",
264dd7415ceSIan Rogers        "CounterMask": "4",
265dd7415ceSIan Rogers        "EventCode": "0xa3",
266dd7415ceSIan Rogers        "EventName": "CYCLE_ACTIVITY.STALLS_TOTAL",
267dd7415ceSIan Rogers        "SampleAfterValue": "1000003",
268dd7415ceSIan Rogers        "UMask": "0x4"
269dd7415ceSIan Rogers    },
270dd7415ceSIan Rogers    {
271dd7415ceSIan Rogers        "BriefDescription": "Cycles total of 1 uop is executed on all ports and Reservation Station was not empty.",
272dd7415ceSIan Rogers        "EventCode": "0xa6",
273dd7415ceSIan Rogers        "EventName": "EXE_ACTIVITY.1_PORTS_UTIL",
274dd7415ceSIan Rogers        "PublicDescription": "Counts cycles during which a total of 1 uop was executed on all ports and Reservation Station (RS) was not empty.",
275dd7415ceSIan Rogers        "SampleAfterValue": "2000003",
276dd7415ceSIan Rogers        "UMask": "0x2"
277dd7415ceSIan Rogers    },
278dd7415ceSIan Rogers    {
279dd7415ceSIan Rogers        "BriefDescription": "Cycles total of 2 uops are executed on all ports and Reservation Station was not empty.",
280dd7415ceSIan Rogers        "EventCode": "0xa6",
281dd7415ceSIan Rogers        "EventName": "EXE_ACTIVITY.2_PORTS_UTIL",
282dd7415ceSIan Rogers        "PublicDescription": "Counts cycles during which a total of 2 uops were executed on all ports and Reservation Station (RS) was not empty.",
283dd7415ceSIan Rogers        "SampleAfterValue": "2000003",
284dd7415ceSIan Rogers        "UMask": "0x4"
285dd7415ceSIan Rogers    },
286dd7415ceSIan Rogers    {
287dd7415ceSIan Rogers        "BriefDescription": "Cycles total of 3 uops are executed on all ports and Reservation Station was not empty.",
288dd7415ceSIan Rogers        "EventCode": "0xa6",
289dd7415ceSIan Rogers        "EventName": "EXE_ACTIVITY.3_PORTS_UTIL",
290dd7415ceSIan Rogers        "PublicDescription": "Cycles total of 3 uops are executed on all ports and Reservation Station (RS) was not empty.",
291dd7415ceSIan Rogers        "SampleAfterValue": "2000003",
292dd7415ceSIan Rogers        "UMask": "0x8"
293dd7415ceSIan Rogers    },
294dd7415ceSIan Rogers    {
295dd7415ceSIan Rogers        "BriefDescription": "Cycles total of 4 uops are executed on all ports and Reservation Station was not empty.",
296dd7415ceSIan Rogers        "EventCode": "0xa6",
297dd7415ceSIan Rogers        "EventName": "EXE_ACTIVITY.4_PORTS_UTIL",
298dd7415ceSIan Rogers        "PublicDescription": "Cycles total of 4 uops are executed on all ports and Reservation Station (RS) was not empty.",
299dd7415ceSIan Rogers        "SampleAfterValue": "2000003",
300dd7415ceSIan Rogers        "UMask": "0x10"
301dd7415ceSIan Rogers    },
302dd7415ceSIan Rogers    {
303dd7415ceSIan Rogers        "BriefDescription": "Cycles where the Store Buffer was full and no loads caused an execution stall.",
304dd7415ceSIan Rogers        "CounterMask": "2",
305dd7415ceSIan Rogers        "EventCode": "0xA6",
306dd7415ceSIan Rogers        "EventName": "EXE_ACTIVITY.BOUND_ON_STORES",
307dd7415ceSIan Rogers        "PublicDescription": "Counts cycles where the Store Buffer was full and no loads caused an execution stall.",
308dd7415ceSIan Rogers        "SampleAfterValue": "1000003",
309dd7415ceSIan Rogers        "UMask": "0x40"
310dd7415ceSIan Rogers    },
311dd7415ceSIan Rogers    {
312dd7415ceSIan Rogers        "BriefDescription": "Stalls caused by changing prefix length of the instruction.",
313dd7415ceSIan Rogers        "EventCode": "0x87",
314dd7415ceSIan Rogers        "EventName": "ILD_STALL.LCP",
315dd7415ceSIan 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.",
316dd7415ceSIan Rogers        "SampleAfterValue": "500009",
317dd7415ceSIan Rogers        "UMask": "0x1"
318dd7415ceSIan Rogers    },
319dd7415ceSIan Rogers    {
320a5043ed9SIan Rogers        "BriefDescription": "Instruction decoders utilized in a cycle",
321a5043ed9SIan Rogers        "EventCode": "0x55",
322a5043ed9SIan Rogers        "EventName": "INST_DECODED.DECODERS",
323a5043ed9SIan Rogers        "PublicDescription": "Number of decoders utilized in a cycle when the MITE (legacy decode pipeline) fetches instructions.",
324a5043ed9SIan Rogers        "SampleAfterValue": "2000003",
325a5043ed9SIan Rogers        "UMask": "0x1"
326a5043ed9SIan Rogers    },
327a5043ed9SIan Rogers    {
328dd7415ceSIan Rogers        "BriefDescription": "Number of instructions retired. Fixed Counter - architectural event",
329dd7415ceSIan Rogers        "EventName": "INST_RETIRED.ANY",
330dd7415ceSIan Rogers        "PEBS": "1",
331dd7415ceSIan 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.",
332dd7415ceSIan Rogers        "SampleAfterValue": "2000003",
333dd7415ceSIan Rogers        "UMask": "0x1"
334dd7415ceSIan Rogers    },
335dd7415ceSIan Rogers    {
336dd7415ceSIan Rogers        "BriefDescription": "Number of instructions retired. General Counter - architectural event",
337dd7415ceSIan Rogers        "EventCode": "0xc0",
338dd7415ceSIan Rogers        "EventName": "INST_RETIRED.ANY_P",
339dd7415ceSIan Rogers        "PEBS": "1",
340dd7415ceSIan 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.",
341dd7415ceSIan Rogers        "SampleAfterValue": "2000003"
342dd7415ceSIan Rogers    },
343dd7415ceSIan Rogers    {
344dd7415ceSIan Rogers        "BriefDescription": "Number of all retired NOP instructions.",
345dd7415ceSIan Rogers        "EventCode": "0xc0",
346dd7415ceSIan Rogers        "EventName": "INST_RETIRED.NOP",
347dd7415ceSIan Rogers        "PEBS": "1",
34871fbc431SJin Yao        "SampleAfterValue": "2000003",
34971fbc431SJin Yao        "UMask": "0x2"
35071fbc431SJin Yao    },
35171fbc431SJin Yao    {
352dd7415ceSIan Rogers        "BriefDescription": "Precise instruction retired event with a reduced effect of PEBS shadow in IP distribution",
353dd7415ceSIan Rogers        "EventName": "INST_RETIRED.PREC_DIST",
354dd7415ceSIan Rogers        "PEBS": "1",
355dd7415ceSIan 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.",
356dd7415ceSIan Rogers        "SampleAfterValue": "2000003",
357dd7415ceSIan Rogers        "UMask": "0x1"
358dd7415ceSIan Rogers    },
359dd7415ceSIan Rogers    {
360dd7415ceSIan Rogers        "BriefDescription": "Cycles without actually retired instructions.",
361dd7415ceSIan Rogers        "CounterMask": "1",
362dd7415ceSIan Rogers        "EventCode": "0xc0",
363dd7415ceSIan Rogers        "EventName": "INST_RETIRED.STALL_CYCLES",
364dd7415ceSIan Rogers        "Invert": "1",
365dd7415ceSIan Rogers        "PublicDescription": "This event counts cycles without actually retired instructions.",
366dd7415ceSIan Rogers        "SampleAfterValue": "1000003",
367dd7415ceSIan Rogers        "UMask": "0x1"
368dd7415ceSIan Rogers    },
369dd7415ceSIan Rogers    {
370dd7415ceSIan Rogers        "BriefDescription": "Cycles the Backend cluster is recovering after a miss-speculation or a Store Buffer or Load Buffer drain stall.",
371dd7415ceSIan Rogers        "CounterMask": "1",
372dd7415ceSIan Rogers        "EventCode": "0x0D",
373dd7415ceSIan Rogers        "EventName": "INT_MISC.ALL_RECOVERY_CYCLES",
374dd7415ceSIan Rogers        "PublicDescription": "Counts cycles the Backend cluster is recovering after a miss-speculation or a Store Buffer or Load Buffer drain stall.",
375dd7415ceSIan Rogers        "SampleAfterValue": "2000003",
376dd7415ceSIan Rogers        "UMask": "0x3"
377dd7415ceSIan Rogers    },
378dd7415ceSIan Rogers    {
379dd7415ceSIan Rogers        "BriefDescription": "Counts cycles after recovery from a branch misprediction or machine clear till the first uop is issued from the resteered path.",
380dd7415ceSIan Rogers        "EventCode": "0x0d",
381dd7415ceSIan Rogers        "EventName": "INT_MISC.CLEAR_RESTEER_CYCLES",
382dd7415ceSIan Rogers        "PublicDescription": "Cycles after recovery from a branch misprediction or machine clear till the first uop is issued from the resteered path.",
383dd7415ceSIan Rogers        "SampleAfterValue": "500009",
384dd7415ceSIan Rogers        "UMask": "0x80"
385dd7415ceSIan Rogers    },
386dd7415ceSIan Rogers    {
387dd7415ceSIan Rogers        "BriefDescription": "Core cycles the allocator was stalled due to recovery from earlier clear event for this thread",
388dd7415ceSIan Rogers        "EventCode": "0x0D",
389dd7415ceSIan Rogers        "EventName": "INT_MISC.RECOVERY_CYCLES",
390dd7415ceSIan Rogers        "PublicDescription": "Counts core cycles when the Resource allocator was stalled due to recovery from an earlier branch misprediction or machine clear event.",
391dd7415ceSIan Rogers        "SampleAfterValue": "500009",
392dd7415ceSIan Rogers        "UMask": "0x1"
393dd7415ceSIan Rogers    },
394dd7415ceSIan Rogers    {
395dd7415ceSIan Rogers        "BriefDescription": "TMA slots where uops got dropped",
396dd7415ceSIan Rogers        "EventCode": "0x0d",
397dd7415ceSIan Rogers        "EventName": "INT_MISC.UOP_DROPPING",
398dd7415ceSIan Rogers        "PublicDescription": "Estimated number of Top-down Microarchitecture Analysis slots that got dropped due to non front-end reasons",
399dd7415ceSIan Rogers        "SampleAfterValue": "1000003",
400dd7415ceSIan Rogers        "UMask": "0x10"
401dd7415ceSIan Rogers    },
402dd7415ceSIan Rogers    {
403dd7415ceSIan Rogers        "BriefDescription": "The number of times that split load operations are temporarily blocked because all resources for handling the split accesses are in use.",
404dd7415ceSIan Rogers        "EventCode": "0x03",
405dd7415ceSIan Rogers        "EventName": "LD_BLOCKS.NO_SR",
406dd7415ceSIan 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.",
407dd7415ceSIan Rogers        "SampleAfterValue": "100003",
408dd7415ceSIan Rogers        "UMask": "0x8"
409dd7415ceSIan Rogers    },
410dd7415ceSIan Rogers    {
411dd7415ceSIan Rogers        "BriefDescription": "Loads blocked due to overlapping with a preceding store that cannot be forwarded.",
412dd7415ceSIan Rogers        "EventCode": "0x03",
413dd7415ceSIan Rogers        "EventName": "LD_BLOCKS.STORE_FORWARD",
414dd7415ceSIan 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.",
415dd7415ceSIan Rogers        "SampleAfterValue": "100003",
416dd7415ceSIan Rogers        "UMask": "0x2"
417dd7415ceSIan Rogers    },
418dd7415ceSIan Rogers    {
419dd7415ceSIan Rogers        "BriefDescription": "False dependencies due to partial compare on address.",
420dd7415ceSIan Rogers        "EventCode": "0x07",
421dd7415ceSIan Rogers        "EventName": "LD_BLOCKS_PARTIAL.ADDRESS_ALIAS",
422dd7415ceSIan Rogers        "PublicDescription": "Counts the number of times a load got blocked due to false dependencies due to partial compare on address.",
423dd7415ceSIan Rogers        "SampleAfterValue": "100003",
424dd7415ceSIan Rogers        "UMask": "0x1"
425dd7415ceSIan Rogers    },
426dd7415ceSIan Rogers    {
427dd7415ceSIan Rogers        "BriefDescription": "Counts the number of demand load dispatches that hit L1D fill buffer (FB) allocated for software prefetch.",
428dd7415ceSIan Rogers        "EventCode": "0x4c",
429dd7415ceSIan Rogers        "EventName": "LOAD_HIT_PREFETCH.SWPF",
430dd7415ceSIan Rogers        "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.",
431dd7415ceSIan Rogers        "SampleAfterValue": "100003",
432dd7415ceSIan Rogers        "UMask": "0x1"
433dd7415ceSIan Rogers    },
434dd7415ceSIan Rogers    {
435dd7415ceSIan Rogers        "BriefDescription": "Cycles Uops delivered by the LSD, but didn't come from the decoder.",
436dd7415ceSIan Rogers        "CounterMask": "1",
437dd7415ceSIan Rogers        "EventCode": "0xA8",
438dd7415ceSIan Rogers        "EventName": "LSD.CYCLES_ACTIVE",
439dd7415ceSIan Rogers        "PublicDescription": "Counts the cycles when at least one uop is delivered by the LSD (Loop-stream detector).",
440dd7415ceSIan Rogers        "SampleAfterValue": "2000003",
441dd7415ceSIan Rogers        "UMask": "0x1"
442dd7415ceSIan Rogers    },
443dd7415ceSIan Rogers    {
44471fbc431SJin Yao        "BriefDescription": "Cycles optimal number of Uops delivered by the LSD, but did not come from the decoder.",
44571fbc431SJin Yao        "CounterMask": "5",
44671fbc431SJin Yao        "EventCode": "0xa8",
44771fbc431SJin Yao        "EventName": "LSD.CYCLES_OK",
44871fbc431SJin Yao        "PublicDescription": "Counts the cycles when optimal number of uops is delivered by the LSD (Loop-stream detector).",
44971fbc431SJin Yao        "SampleAfterValue": "2000003",
45071fbc431SJin Yao        "UMask": "0x1"
45171fbc431SJin Yao    },
45271fbc431SJin Yao    {
453dd7415ceSIan Rogers        "BriefDescription": "Number of Uops delivered by the LSD.",
454dd7415ceSIan Rogers        "EventCode": "0xa8",
455dd7415ceSIan Rogers        "EventName": "LSD.UOPS",
456dd7415ceSIan Rogers        "PublicDescription": "Counts the number of uops delivered to the back-end by the LSD(Loop Stream Detector).",
457dd7415ceSIan Rogers        "SampleAfterValue": "2000003",
458dd7415ceSIan Rogers        "UMask": "0x1"
459dd7415ceSIan Rogers    },
460dd7415ceSIan Rogers    {
461dd7415ceSIan Rogers        "BriefDescription": "Number of machine clears (nukes) of any type.",
462dd7415ceSIan Rogers        "CounterMask": "1",
463dd7415ceSIan Rogers        "EdgeDetect": "1",
464dd7415ceSIan Rogers        "EventCode": "0xc3",
465dd7415ceSIan Rogers        "EventName": "MACHINE_CLEARS.COUNT",
466dd7415ceSIan Rogers        "PublicDescription": "Counts the number of machine clears (nukes) of any type.",
467dd7415ceSIan Rogers        "SampleAfterValue": "100003",
468dd7415ceSIan Rogers        "UMask": "0x1"
469dd7415ceSIan Rogers    },
470dd7415ceSIan Rogers    {
471dd7415ceSIan Rogers        "BriefDescription": "Self-modifying code (SMC) detected.",
472dd7415ceSIan Rogers        "EventCode": "0xc3",
473dd7415ceSIan Rogers        "EventName": "MACHINE_CLEARS.SMC",
474dd7415ceSIan Rogers        "PublicDescription": "Counts self-modifying code (SMC) detected, which causes a machine clear.",
475dd7415ceSIan Rogers        "SampleAfterValue": "100003",
476dd7415ceSIan Rogers        "UMask": "0x4"
477dd7415ceSIan Rogers    },
478dd7415ceSIan Rogers    {
479dd7415ceSIan Rogers        "BriefDescription": "Increments whenever there is an update to the LBR array.",
480dd7415ceSIan Rogers        "EventCode": "0xcc",
481dd7415ceSIan Rogers        "EventName": "MISC_RETIRED.LBR_INSERTS",
482dd7415ceSIan 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.",
483dd7415ceSIan Rogers        "SampleAfterValue": "100003",
484dd7415ceSIan Rogers        "UMask": "0x20"
485dd7415ceSIan Rogers    },
486dd7415ceSIan Rogers    {
487dd7415ceSIan Rogers        "BriefDescription": "Number of retired PAUSE instructions. This event is not supported on first SKL and KBL products.",
488dd7415ceSIan Rogers        "EventCode": "0xcc",
489dd7415ceSIan Rogers        "EventName": "MISC_RETIRED.PAUSE_INST",
490dd7415ceSIan Rogers        "PublicDescription": "Counts number of retired PAUSE instructions. This event is not supported on first SKL and KBL products.",
491dd7415ceSIan Rogers        "SampleAfterValue": "100003",
492dd7415ceSIan Rogers        "UMask": "0x40"
493dd7415ceSIan Rogers    },
494dd7415ceSIan Rogers    {
495dd7415ceSIan Rogers        "BriefDescription": "Cycles stalled due to no store buffers available. (not including draining form sync).",
496dd7415ceSIan Rogers        "EventCode": "0xa2",
497dd7415ceSIan Rogers        "EventName": "RESOURCE_STALLS.SB",
498dd7415ceSIan 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.",
499dd7415ceSIan Rogers        "SampleAfterValue": "100003",
50071fbc431SJin Yao        "UMask": "0x8"
50171fbc431SJin Yao    },
50271fbc431SJin Yao    {
503dd7415ceSIan Rogers        "BriefDescription": "Counts cycles where the pipeline is stalled due to serializing operations.",
504dd7415ceSIan Rogers        "EventCode": "0xa2",
505dd7415ceSIan Rogers        "EventName": "RESOURCE_STALLS.SCOREBOARD",
506dd7415ceSIan Rogers        "SampleAfterValue": "100003",
507dd7415ceSIan Rogers        "UMask": "0x2"
50871fbc431SJin Yao    },
50971fbc431SJin Yao    {
510dd7415ceSIan Rogers        "BriefDescription": "Cycles when Reservation Station (RS) is empty for the thread",
511dd7415ceSIan Rogers        "EventCode": "0x5e",
512dd7415ceSIan Rogers        "EventName": "RS_EVENTS.EMPTY_CYCLES",
513dd7415ceSIan Rogers        "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)",
51471fbc431SJin Yao        "SampleAfterValue": "1000003",
51571fbc431SJin Yao        "UMask": "0x1"
51671fbc431SJin Yao    },
51771fbc431SJin Yao    {
518dd7415ceSIan Rogers        "BriefDescription": "Counts end of periods where the Reservation Station (RS) was empty.",
51971fbc431SJin Yao        "CounterMask": "1",
520dd7415ceSIan Rogers        "EdgeDetect": "1",
521dd7415ceSIan Rogers        "EventCode": "0x5E",
522dd7415ceSIan Rogers        "EventName": "RS_EVENTS.EMPTY_END",
52371fbc431SJin Yao        "Invert": "1",
524dd7415ceSIan Rogers        "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)",
525dd7415ceSIan Rogers        "SampleAfterValue": "100003",
526dd7415ceSIan Rogers        "UMask": "0x1"
527dd7415ceSIan Rogers    },
528dd7415ceSIan Rogers    {
529fb76811aSIan Rogers        "BriefDescription": "TMA slots where no uops were being issued due to lack of back-end resources.",
530fb76811aSIan Rogers        "EventCode": "0xa4",
531fb76811aSIan Rogers        "EventName": "TOPDOWN.BACKEND_BOUND_SLOTS",
532fb76811aSIan Rogers        "PublicDescription": "Counts the number of Top-down Microarchitecture Analysis (TMA) method's  slots where no micro-operations were being issued from front-end to back-end of the machine due to lack of back-end resources.",
533fb76811aSIan Rogers        "SampleAfterValue": "10000003",
534fb76811aSIan Rogers        "UMask": "0x2"
535fb76811aSIan Rogers    },
536fb76811aSIan Rogers    {
537fb76811aSIan Rogers        "BriefDescription": "TMA slots wasted due to incorrect speculation by branch mispredictions",
538fb76811aSIan Rogers        "EventCode": "0xa4",
539fb76811aSIan Rogers        "EventName": "TOPDOWN.BR_MISPREDICT_SLOTS",
540fb76811aSIan Rogers        "PublicDescription": "Number of TMA slots that were wasted due to incorrect speculation by branch mispredictions. This event estimates number of operations that were issued but not retired from the specualtive path as well as the out-of-order engine recovery past a branch misprediction.",
541fb76811aSIan Rogers        "SampleAfterValue": "10000003",
542fb76811aSIan Rogers        "UMask": "0x8"
543fb76811aSIan Rogers    },
544fb76811aSIan Rogers    {
545fb76811aSIan Rogers        "BriefDescription": "TMA slots available for an unhalted logical processor. Fixed counter - architectural event",
546fb76811aSIan Rogers        "EventName": "TOPDOWN.SLOTS",
547fb76811aSIan Rogers        "PublicDescription": "Number of available slots for an unhalted logical processor. The event increments by machine-width of the narrowest pipeline as employed by the Top-down Microarchitecture Analysis method (TMA). The count is distributed among unhalted logical processors (hyper-threads) who share the same physical core. Software can use this event as the denominator for the top-level metrics of the TMA method. This architectural event is counted on a designated fixed counter (Fixed Counter 3).",
548fb76811aSIan Rogers        "SampleAfterValue": "10000003",
549fb76811aSIan Rogers        "UMask": "0x4"
550fb76811aSIan Rogers    },
551fb76811aSIan Rogers    {
552fb76811aSIan Rogers        "BriefDescription": "TMA slots available for an unhalted logical processor. General counter - architectural event",
553fb76811aSIan Rogers        "EventCode": "0xa4",
554fb76811aSIan Rogers        "EventName": "TOPDOWN.SLOTS_P",
555fb76811aSIan Rogers        "PublicDescription": "Counts the number of available slots for an unhalted logical processor. The event increments by machine-width of the narrowest pipeline as employed by the Top-down Microarchitecture Analysis method. The count is distributed among unhalted logical processors (hyper-threads) who share the same physical core.",
556fb76811aSIan Rogers        "SampleAfterValue": "10000003",
557fb76811aSIan Rogers        "UMask": "0x1"
558fb76811aSIan Rogers    },
559fb76811aSIan Rogers    {
560dd7415ceSIan Rogers        "BriefDescription": "Number of uops decoded out of instructions exclusively fetched by decoder 0",
561dd7415ceSIan Rogers        "EventCode": "0x56",
562dd7415ceSIan Rogers        "EventName": "UOPS_DECODED.DEC0",
563dd7415ceSIan Rogers        "PublicDescription": "Uops exclusively fetched by decoder 0",
56471fbc431SJin Yao        "SampleAfterValue": "1000003",
56571fbc431SJin Yao        "UMask": "0x1"
56671fbc431SJin Yao    },
56771fbc431SJin Yao    {
568dd7415ceSIan Rogers        "BriefDescription": "Number of uops executed on port 0",
569dd7415ceSIan Rogers        "EventCode": "0xa1",
570dd7415ceSIan Rogers        "EventName": "UOPS_DISPATCHED.PORT_0",
571dd7415ceSIan Rogers        "PublicDescription": "Counts, on the per-thread basis, cycles during which at least one uop is dispatched from the Reservation Station (RS) to port 0.",
572dd7415ceSIan Rogers        "SampleAfterValue": "2000003",
573dd7415ceSIan Rogers        "UMask": "0x1"
574dd7415ceSIan Rogers    },
575dd7415ceSIan Rogers    {
576dd7415ceSIan Rogers        "BriefDescription": "Number of uops executed on port 1",
577dd7415ceSIan Rogers        "EventCode": "0xa1",
578dd7415ceSIan Rogers        "EventName": "UOPS_DISPATCHED.PORT_1",
579dd7415ceSIan Rogers        "PublicDescription": "Counts, on the per-thread basis, cycles during which at least one uop is dispatched from the Reservation Station (RS) to port 1.",
580dd7415ceSIan Rogers        "SampleAfterValue": "2000003",
581dd7415ceSIan Rogers        "UMask": "0x2"
582dd7415ceSIan Rogers    },
583dd7415ceSIan Rogers    {
584dd7415ceSIan Rogers        "BriefDescription": "Number of uops executed on port 2 and 3",
585dd7415ceSIan Rogers        "EventCode": "0xa1",
586dd7415ceSIan Rogers        "EventName": "UOPS_DISPATCHED.PORT_2_3",
587dd7415ceSIan Rogers        "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.",
588dd7415ceSIan Rogers        "SampleAfterValue": "2000003",
589dd7415ceSIan Rogers        "UMask": "0x4"
590dd7415ceSIan Rogers    },
591dd7415ceSIan Rogers    {
592dd7415ceSIan Rogers        "BriefDescription": "Number of uops executed on port 4 and 9",
593dd7415ceSIan Rogers        "EventCode": "0xa1",
594dd7415ceSIan Rogers        "EventName": "UOPS_DISPATCHED.PORT_4_9",
595dd7415ceSIan Rogers        "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.",
596dd7415ceSIan Rogers        "SampleAfterValue": "2000003",
597dd7415ceSIan Rogers        "UMask": "0x10"
598dd7415ceSIan Rogers    },
599dd7415ceSIan Rogers    {
600dd7415ceSIan Rogers        "BriefDescription": "Number of uops executed on port 5",
601dd7415ceSIan Rogers        "EventCode": "0xa1",
602dd7415ceSIan Rogers        "EventName": "UOPS_DISPATCHED.PORT_5",
603dd7415ceSIan Rogers        "PublicDescription": "Counts, on the per-thread basis, cycles during which at least one uop is dispatched from the Reservation Station (RS) to port 5.",
604dd7415ceSIan Rogers        "SampleAfterValue": "2000003",
605dd7415ceSIan Rogers        "UMask": "0x20"
606dd7415ceSIan Rogers    },
607dd7415ceSIan Rogers    {
608dd7415ceSIan Rogers        "BriefDescription": "Number of uops executed on port 6",
609dd7415ceSIan Rogers        "EventCode": "0xa1",
610dd7415ceSIan Rogers        "EventName": "UOPS_DISPATCHED.PORT_6",
611dd7415ceSIan Rogers        "PublicDescription": "Counts, on the per-thread basis, cycles during which at least one uop is dispatched from the Reservation Station (RS) to port 6.",
612dd7415ceSIan Rogers        "SampleAfterValue": "2000003",
613dd7415ceSIan Rogers        "UMask": "0x40"
614dd7415ceSIan Rogers    },
615dd7415ceSIan Rogers    {
616dd7415ceSIan Rogers        "BriefDescription": "Number of uops executed on port 7 and 8",
617dd7415ceSIan Rogers        "EventCode": "0xa1",
618dd7415ceSIan Rogers        "EventName": "UOPS_DISPATCHED.PORT_7_8",
619dd7415ceSIan Rogers        "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.",
620dd7415ceSIan Rogers        "SampleAfterValue": "2000003",
621dd7415ceSIan Rogers        "UMask": "0x80"
622dd7415ceSIan Rogers    },
623dd7415ceSIan Rogers    {
624dd7415ceSIan Rogers        "BriefDescription": "Number of uops executed on the core.",
625dd7415ceSIan Rogers        "EventCode": "0xB1",
626dd7415ceSIan Rogers        "EventName": "UOPS_EXECUTED.CORE",
627dd7415ceSIan Rogers        "PublicDescription": "Counts the number of uops executed from any thread.",
62871fbc431SJin Yao        "SampleAfterValue": "2000003",
62971fbc431SJin Yao        "UMask": "0x2"
63071fbc431SJin Yao    },
63171fbc431SJin Yao    {
63271fbc431SJin Yao        "BriefDescription": "Cycles at least 1 micro-op is executed from any thread on physical core.",
63371fbc431SJin Yao        "CounterMask": "1",
63471fbc431SJin Yao        "EventCode": "0xB1",
63571fbc431SJin Yao        "EventName": "UOPS_EXECUTED.CORE_CYCLES_GE_1",
63671fbc431SJin Yao        "PublicDescription": "Counts cycles when at least 1 micro-op is executed from any thread on physical core.",
63771fbc431SJin Yao        "SampleAfterValue": "2000003",
63871fbc431SJin Yao        "UMask": "0x2"
63971fbc431SJin Yao    },
64071fbc431SJin Yao    {
641dd7415ceSIan Rogers        "BriefDescription": "Cycles at least 2 micro-op is executed from any thread on physical core.",
642dd7415ceSIan Rogers        "CounterMask": "2",
643dd7415ceSIan Rogers        "EventCode": "0xB1",
644dd7415ceSIan Rogers        "EventName": "UOPS_EXECUTED.CORE_CYCLES_GE_2",
645dd7415ceSIan Rogers        "PublicDescription": "Counts cycles when at least 2 micro-ops are executed from any thread on physical core.",
646dd7415ceSIan Rogers        "SampleAfterValue": "2000003",
647dd7415ceSIan Rogers        "UMask": "0x2"
64871fbc431SJin Yao    },
64971fbc431SJin Yao    {
650dd7415ceSIan Rogers        "BriefDescription": "Cycles at least 3 micro-op is executed from any thread on physical core.",
651dd7415ceSIan Rogers        "CounterMask": "3",
652dd7415ceSIan Rogers        "EventCode": "0xB1",
653dd7415ceSIan Rogers        "EventName": "UOPS_EXECUTED.CORE_CYCLES_GE_3",
654dd7415ceSIan Rogers        "PublicDescription": "Counts cycles when at least 3 micro-ops are executed from any thread on physical core.",
655dd7415ceSIan Rogers        "SampleAfterValue": "2000003",
656dd7415ceSIan Rogers        "UMask": "0x2"
657dd7415ceSIan Rogers    },
658dd7415ceSIan Rogers    {
659dd7415ceSIan Rogers        "BriefDescription": "Cycles at least 4 micro-op is executed from any thread on physical core.",
660dd7415ceSIan Rogers        "CounterMask": "4",
661dd7415ceSIan Rogers        "EventCode": "0xB1",
662dd7415ceSIan Rogers        "EventName": "UOPS_EXECUTED.CORE_CYCLES_GE_4",
663dd7415ceSIan Rogers        "PublicDescription": "Counts cycles when at least 4 micro-ops are executed from any thread on physical core.",
664dd7415ceSIan Rogers        "SampleAfterValue": "2000003",
665dd7415ceSIan Rogers        "UMask": "0x2"
666dd7415ceSIan Rogers    },
667dd7415ceSIan Rogers    {
668dd7415ceSIan Rogers        "BriefDescription": "Cycles where at least 1 uop was executed per-thread",
669dd7415ceSIan Rogers        "CounterMask": "1",
670dd7415ceSIan Rogers        "EventCode": "0xb1",
671dd7415ceSIan Rogers        "EventName": "UOPS_EXECUTED.CYCLES_GE_1",
672dd7415ceSIan Rogers        "PublicDescription": "Cycles where at least 1 uop was executed per-thread.",
673dd7415ceSIan Rogers        "SampleAfterValue": "2000003",
674dd7415ceSIan Rogers        "UMask": "0x1"
675dd7415ceSIan Rogers    },
676dd7415ceSIan Rogers    {
677dd7415ceSIan Rogers        "BriefDescription": "Cycles where at least 2 uops were executed per-thread",
678dd7415ceSIan Rogers        "CounterMask": "2",
679dd7415ceSIan Rogers        "EventCode": "0xb1",
680dd7415ceSIan Rogers        "EventName": "UOPS_EXECUTED.CYCLES_GE_2",
681dd7415ceSIan Rogers        "PublicDescription": "Cycles where at least 2 uops were executed per-thread.",
682dd7415ceSIan Rogers        "SampleAfterValue": "2000003",
683dd7415ceSIan Rogers        "UMask": "0x1"
684dd7415ceSIan Rogers    },
685dd7415ceSIan Rogers    {
686dd7415ceSIan Rogers        "BriefDescription": "Cycles where at least 3 uops were executed per-thread",
687dd7415ceSIan Rogers        "CounterMask": "3",
688dd7415ceSIan Rogers        "EventCode": "0xb1",
689dd7415ceSIan Rogers        "EventName": "UOPS_EXECUTED.CYCLES_GE_3",
690dd7415ceSIan Rogers        "PublicDescription": "Cycles where at least 3 uops were executed per-thread.",
691dd7415ceSIan Rogers        "SampleAfterValue": "2000003",
692dd7415ceSIan Rogers        "UMask": "0x1"
693dd7415ceSIan Rogers    },
694dd7415ceSIan Rogers    {
695dd7415ceSIan Rogers        "BriefDescription": "Cycles where at least 4 uops were executed per-thread",
696dd7415ceSIan Rogers        "CounterMask": "4",
697dd7415ceSIan Rogers        "EventCode": "0xb1",
698dd7415ceSIan Rogers        "EventName": "UOPS_EXECUTED.CYCLES_GE_4",
699dd7415ceSIan Rogers        "PublicDescription": "Cycles where at least 4 uops were executed per-thread.",
700dd7415ceSIan Rogers        "SampleAfterValue": "2000003",
701dd7415ceSIan Rogers        "UMask": "0x1"
702dd7415ceSIan Rogers    },
703dd7415ceSIan Rogers    {
704dd7415ceSIan Rogers        "BriefDescription": "Counts number of cycles no uops were dispatched to be executed on this thread.",
705dd7415ceSIan Rogers        "CounterMask": "1",
706dd7415ceSIan Rogers        "EventCode": "0xB1",
707dd7415ceSIan Rogers        "EventName": "UOPS_EXECUTED.STALL_CYCLES",
708dd7415ceSIan Rogers        "Invert": "1",
709dd7415ceSIan Rogers        "PublicDescription": "Counts cycles during which no uops were dispatched from the Reservation Station (RS) per thread.",
710dd7415ceSIan Rogers        "SampleAfterValue": "2000003",
711dd7415ceSIan Rogers        "UMask": "0x1"
712dd7415ceSIan Rogers    },
713dd7415ceSIan Rogers    {
714dd7415ceSIan Rogers        "BriefDescription": "Counts the number of uops to be executed per-thread each cycle.",
715dd7415ceSIan Rogers        "EventCode": "0xb1",
716dd7415ceSIan Rogers        "EventName": "UOPS_EXECUTED.THREAD",
717dd7415ceSIan Rogers        "SampleAfterValue": "2000003",
718dd7415ceSIan Rogers        "UMask": "0x1"
719dd7415ceSIan Rogers    },
720dd7415ceSIan Rogers    {
721dd7415ceSIan Rogers        "BriefDescription": "Counts the number of x87 uops dispatched.",
722dd7415ceSIan Rogers        "EventCode": "0xB1",
723dd7415ceSIan Rogers        "EventName": "UOPS_EXECUTED.X87",
724dd7415ceSIan Rogers        "PublicDescription": "Counts the number of x87 uops executed.",
725dd7415ceSIan Rogers        "SampleAfterValue": "2000003",
72671fbc431SJin Yao        "UMask": "0x10"
72771fbc431SJin Yao    },
72871fbc431SJin Yao    {
729dd7415ceSIan Rogers        "BriefDescription": "Uops that RAT issues to RS",
730dd7415ceSIan Rogers        "EventCode": "0x0e",
731dd7415ceSIan Rogers        "EventName": "UOPS_ISSUED.ANY",
732dd7415ceSIan Rogers        "PublicDescription": "Counts the number of uops that the Resource Allocation Table (RAT) issues to the Reservation Station (RS).",
73371fbc431SJin Yao        "SampleAfterValue": "2000003",
73471fbc431SJin Yao        "UMask": "0x1"
73571fbc431SJin Yao    },
73671fbc431SJin Yao    {
737dd7415ceSIan Rogers        "BriefDescription": "Cycles when RAT does not issue Uops to RS for the thread",
738dd7415ceSIan Rogers        "CounterMask": "1",
739dd7415ceSIan Rogers        "EventCode": "0x0E",
740dd7415ceSIan Rogers        "EventName": "UOPS_ISSUED.STALL_CYCLES",
741dd7415ceSIan Rogers        "Invert": "1",
742dd7415ceSIan 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.",
743dd7415ceSIan Rogers        "SampleAfterValue": "1000003",
744dd7415ceSIan Rogers        "UMask": "0x1"
745dd7415ceSIan Rogers    },
746dd7415ceSIan Rogers    {
747dd7415ceSIan Rogers        "BriefDescription": "Uops inserted at issue-stage in order to preserve upper bits of vector registers.",
748dd7415ceSIan Rogers        "EventCode": "0x0e",
749dd7415ceSIan Rogers        "EventName": "UOPS_ISSUED.VECTOR_WIDTH_MISMATCH",
750dd7415ceSIan 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.",
751dd7415ceSIan Rogers        "SampleAfterValue": "100003",
752dd7415ceSIan Rogers        "UMask": "0x2"
753dd7415ceSIan Rogers    },
754dd7415ceSIan Rogers    {
755dd7415ceSIan Rogers        "BriefDescription": "Retirement slots used.",
756dd7415ceSIan Rogers        "EventCode": "0xc2",
757dd7415ceSIan Rogers        "EventName": "UOPS_RETIRED.SLOTS",
758dd7415ceSIan Rogers        "PublicDescription": "Counts the retirement slots used each cycle.",
759dd7415ceSIan Rogers        "SampleAfterValue": "2000003",
760dd7415ceSIan Rogers        "UMask": "0x2"
761dd7415ceSIan Rogers    },
762dd7415ceSIan Rogers    {
763dd7415ceSIan Rogers        "BriefDescription": "Cycles without actually retired uops.",
764dd7415ceSIan Rogers        "CounterMask": "1",
765dd7415ceSIan Rogers        "EventCode": "0xc2",
766dd7415ceSIan Rogers        "EventName": "UOPS_RETIRED.STALL_CYCLES",
767dd7415ceSIan Rogers        "Invert": "1",
768dd7415ceSIan Rogers        "PublicDescription": "This event counts cycles without actually retired uops.",
769dd7415ceSIan Rogers        "SampleAfterValue": "1000003",
770dd7415ceSIan Rogers        "UMask": "0x2"
771dd7415ceSIan Rogers    },
772dd7415ceSIan Rogers    {
773dd7415ceSIan Rogers        "BriefDescription": "Cycles with less than 10 actually retired uops.",
774dd7415ceSIan Rogers        "CounterMask": "10",
775dd7415ceSIan Rogers        "EventCode": "0xc2",
776dd7415ceSIan Rogers        "EventName": "UOPS_RETIRED.TOTAL_CYCLES",
777dd7415ceSIan Rogers        "Invert": "1",
778dd7415ceSIan Rogers        "PublicDescription": "Counts the number of cycles using always true condition (uops_ret < 16) applied to non PEBS uops retired event.",
779dd7415ceSIan Rogers        "SampleAfterValue": "1000003",
780dd7415ceSIan Rogers        "UMask": "0x2"
781b115df07SHaiyan Song    }
782b115df07SHaiyan Song]
783