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    {
1625d486947SIan Rogers        "BriefDescription": "This event counts the number of mispredicted ret instructions retired. Non PEBS",
1635d486947SIan Rogers        "EventCode": "0xc5",
1645d486947SIan Rogers        "EventName": "BR_MISP_RETIRED.RET",
1655d486947SIan Rogers        "PEBS": "1",
1665d486947SIan Rogers        "PublicDescription": "This is a non-precise version (that is, does not use PEBS) of the event that counts mispredicted return instructions retired.",
1675d486947SIan Rogers        "SampleAfterValue": "50021",
1685d486947SIan Rogers        "UMask": "0x8"
1695d486947SIan Rogers    },
1705d486947SIan Rogers    {
17171fbc431SJin Yao        "BriefDescription": "Cycle counts are evenly distributed between active threads in the Core.",
17271fbc431SJin Yao        "EventCode": "0xec",
17371fbc431SJin Yao        "EventName": "CPU_CLK_UNHALTED.DISTRIBUTED",
17471fbc431SJin 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.",
17571fbc431SJin Yao        "SampleAfterValue": "2000003",
17671fbc431SJin Yao        "UMask": "0x2"
17771fbc431SJin Yao    },
17871fbc431SJin Yao    {
17971fbc431SJin Yao        "BriefDescription": "Core crystal clock cycles when this thread is unhalted and the other thread is halted.",
18071fbc431SJin Yao        "EventCode": "0x3C",
18171fbc431SJin Yao        "EventName": "CPU_CLK_UNHALTED.ONE_THREAD_ACTIVE",
18271fbc431SJin Yao        "PublicDescription": "Counts Core crystal clock cycles when current thread is unhalted and the other thread is halted.",
18371fbc431SJin Yao        "SampleAfterValue": "25003",
18471fbc431SJin Yao        "UMask": "0x2"
18571fbc431SJin Yao    },
18671fbc431SJin Yao    {
187dd7415ceSIan Rogers        "BriefDescription": "Core crystal clock cycles. Cycle counts are evenly distributed between active threads in the Core.",
188dd7415ceSIan Rogers        "EventCode": "0x3c",
189dd7415ceSIan Rogers        "EventName": "CPU_CLK_UNHALTED.REF_DISTRIBUTED",
190dd7415ceSIan 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.",
191dd7415ceSIan Rogers        "SampleAfterValue": "2000003",
192dd7415ceSIan Rogers        "UMask": "0x8"
193dd7415ceSIan Rogers    },
194dd7415ceSIan Rogers    {
195dd7415ceSIan Rogers        "BriefDescription": "Reference cycles when the core is not in halt state.",
196dd7415ceSIan Rogers        "EventName": "CPU_CLK_UNHALTED.REF_TSC",
197dd7415ceSIan 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.",
198dd7415ceSIan Rogers        "SampleAfterValue": "2000003",
199dd7415ceSIan Rogers        "UMask": "0x3"
200dd7415ceSIan Rogers    },
201dd7415ceSIan Rogers    {
202dd7415ceSIan Rogers        "BriefDescription": "Core crystal clock cycles when the thread is unhalted.",
203dd7415ceSIan Rogers        "EventCode": "0x3C",
204dd7415ceSIan Rogers        "EventName": "CPU_CLK_UNHALTED.REF_XCLK",
205dd7415ceSIan Rogers        "PublicDescription": "Counts core crystal clock cycles when the thread is unhalted.",
206dd7415ceSIan Rogers        "SampleAfterValue": "25003",
207dd7415ceSIan Rogers        "UMask": "0x1"
208dd7415ceSIan Rogers    },
209dd7415ceSIan Rogers    {
210dd7415ceSIan Rogers        "BriefDescription": "Core cycles when the thread is not in halt state",
211dd7415ceSIan Rogers        "EventName": "CPU_CLK_UNHALTED.THREAD",
212dd7415ceSIan 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.",
213dd7415ceSIan Rogers        "SampleAfterValue": "2000003",
214dd7415ceSIan Rogers        "UMask": "0x2"
215dd7415ceSIan Rogers    },
216dd7415ceSIan Rogers    {
21771fbc431SJin Yao        "BriefDescription": "Thread cycles when thread is not in halt state",
21871fbc431SJin Yao        "EventCode": "0x3C",
21971fbc431SJin Yao        "EventName": "CPU_CLK_UNHALTED.THREAD_P",
22071fbc431SJin 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.",
221f8473086SIan Rogers        "SampleAfterValue": "2000003"
22271fbc431SJin Yao    },
22371fbc431SJin Yao    {
224dd7415ceSIan Rogers        "BriefDescription": "Cycles while L1 cache miss demand load is outstanding.",
225dd7415ceSIan Rogers        "CounterMask": "8",
226dd7415ceSIan Rogers        "EventCode": "0xA3",
227dd7415ceSIan Rogers        "EventName": "CYCLE_ACTIVITY.CYCLES_L1D_MISS",
228dd7415ceSIan Rogers        "SampleAfterValue": "1000003",
229dd7415ceSIan Rogers        "UMask": "0x8"
23071fbc431SJin Yao    },
23171fbc431SJin Yao    {
232dd7415ceSIan Rogers        "BriefDescription": "Cycles while L2 cache miss demand load is outstanding.",
233dd7415ceSIan Rogers        "CounterMask": "1",
234dd7415ceSIan Rogers        "EventCode": "0xA3",
235dd7415ceSIan Rogers        "EventName": "CYCLE_ACTIVITY.CYCLES_L2_MISS",
236dd7415ceSIan Rogers        "SampleAfterValue": "1000003",
23771fbc431SJin Yao        "UMask": "0x1"
23871fbc431SJin Yao    },
23971fbc431SJin Yao    {
240dd7415ceSIan Rogers        "BriefDescription": "Cycles while memory subsystem has an outstanding load.",
241dd7415ceSIan Rogers        "CounterMask": "16",
242dd7415ceSIan Rogers        "EventCode": "0xA3",
243dd7415ceSIan Rogers        "EventName": "CYCLE_ACTIVITY.CYCLES_MEM_ANY",
244dd7415ceSIan Rogers        "SampleAfterValue": "1000003",
245dd7415ceSIan Rogers        "UMask": "0x10"
24671fbc431SJin Yao    },
24771fbc431SJin Yao    {
248dd7415ceSIan Rogers        "BriefDescription": "Execution stalls while L1 cache miss demand load is outstanding.",
249dd7415ceSIan Rogers        "CounterMask": "12",
250dd7415ceSIan Rogers        "EventCode": "0xA3",
251dd7415ceSIan Rogers        "EventName": "CYCLE_ACTIVITY.STALLS_L1D_MISS",
252dd7415ceSIan Rogers        "SampleAfterValue": "1000003",
253dd7415ceSIan Rogers        "UMask": "0xc"
254dd7415ceSIan Rogers    },
255dd7415ceSIan Rogers    {
256dd7415ceSIan Rogers        "BriefDescription": "Execution stalls while L2 cache miss demand load is outstanding.",
257dd7415ceSIan Rogers        "CounterMask": "5",
258dd7415ceSIan Rogers        "EventCode": "0xa3",
259dd7415ceSIan Rogers        "EventName": "CYCLE_ACTIVITY.STALLS_L2_MISS",
260dd7415ceSIan Rogers        "SampleAfterValue": "1000003",
261dd7415ceSIan Rogers        "UMask": "0x5"
262dd7415ceSIan Rogers    },
263dd7415ceSIan Rogers    {
264dd7415ceSIan Rogers        "BriefDescription": "Execution stalls while memory subsystem has an outstanding load.",
265dd7415ceSIan Rogers        "CounterMask": "20",
266dd7415ceSIan Rogers        "EventCode": "0xa3",
267dd7415ceSIan Rogers        "EventName": "CYCLE_ACTIVITY.STALLS_MEM_ANY",
268dd7415ceSIan Rogers        "SampleAfterValue": "1000003",
269dd7415ceSIan Rogers        "UMask": "0x14"
270dd7415ceSIan Rogers    },
271dd7415ceSIan Rogers    {
272dd7415ceSIan Rogers        "BriefDescription": "Total execution stalls.",
273dd7415ceSIan Rogers        "CounterMask": "4",
274dd7415ceSIan Rogers        "EventCode": "0xa3",
275dd7415ceSIan Rogers        "EventName": "CYCLE_ACTIVITY.STALLS_TOTAL",
276dd7415ceSIan Rogers        "SampleAfterValue": "1000003",
277dd7415ceSIan Rogers        "UMask": "0x4"
278dd7415ceSIan Rogers    },
279dd7415ceSIan Rogers    {
280dd7415ceSIan Rogers        "BriefDescription": "Cycles total of 1 uop is executed on all ports and Reservation Station was not empty.",
281dd7415ceSIan Rogers        "EventCode": "0xa6",
282dd7415ceSIan Rogers        "EventName": "EXE_ACTIVITY.1_PORTS_UTIL",
283dd7415ceSIan Rogers        "PublicDescription": "Counts cycles during which a total of 1 uop was executed on all ports and Reservation Station (RS) was not empty.",
284dd7415ceSIan Rogers        "SampleAfterValue": "2000003",
285dd7415ceSIan Rogers        "UMask": "0x2"
286dd7415ceSIan Rogers    },
287dd7415ceSIan Rogers    {
288dd7415ceSIan Rogers        "BriefDescription": "Cycles total of 2 uops are executed on all ports and Reservation Station was not empty.",
289dd7415ceSIan Rogers        "EventCode": "0xa6",
290dd7415ceSIan Rogers        "EventName": "EXE_ACTIVITY.2_PORTS_UTIL",
291dd7415ceSIan Rogers        "PublicDescription": "Counts cycles during which a total of 2 uops were executed on all ports and Reservation Station (RS) was not empty.",
292dd7415ceSIan Rogers        "SampleAfterValue": "2000003",
293dd7415ceSIan Rogers        "UMask": "0x4"
294dd7415ceSIan Rogers    },
295dd7415ceSIan Rogers    {
296dd7415ceSIan Rogers        "BriefDescription": "Cycles total of 3 uops are executed on all ports and Reservation Station was not empty.",
297dd7415ceSIan Rogers        "EventCode": "0xa6",
298dd7415ceSIan Rogers        "EventName": "EXE_ACTIVITY.3_PORTS_UTIL",
299dd7415ceSIan Rogers        "PublicDescription": "Cycles total of 3 uops are executed on all ports and Reservation Station (RS) was not empty.",
300dd7415ceSIan Rogers        "SampleAfterValue": "2000003",
301dd7415ceSIan Rogers        "UMask": "0x8"
302dd7415ceSIan Rogers    },
303dd7415ceSIan Rogers    {
304dd7415ceSIan Rogers        "BriefDescription": "Cycles total of 4 uops are executed on all ports and Reservation Station was not empty.",
305dd7415ceSIan Rogers        "EventCode": "0xa6",
306dd7415ceSIan Rogers        "EventName": "EXE_ACTIVITY.4_PORTS_UTIL",
307dd7415ceSIan Rogers        "PublicDescription": "Cycles total of 4 uops are executed on all ports and Reservation Station (RS) was not empty.",
308dd7415ceSIan Rogers        "SampleAfterValue": "2000003",
309dd7415ceSIan Rogers        "UMask": "0x10"
310dd7415ceSIan Rogers    },
311dd7415ceSIan Rogers    {
312dd7415ceSIan Rogers        "BriefDescription": "Cycles where the Store Buffer was full and no loads caused an execution stall.",
313dd7415ceSIan Rogers        "CounterMask": "2",
314dd7415ceSIan Rogers        "EventCode": "0xA6",
315dd7415ceSIan Rogers        "EventName": "EXE_ACTIVITY.BOUND_ON_STORES",
316dd7415ceSIan Rogers        "PublicDescription": "Counts cycles where the Store Buffer was full and no loads caused an execution stall.",
317dd7415ceSIan Rogers        "SampleAfterValue": "1000003",
318dd7415ceSIan Rogers        "UMask": "0x40"
319dd7415ceSIan Rogers    },
320dd7415ceSIan Rogers    {
321*d1363b94SIan Rogers        "BriefDescription": "Stalls caused by changing prefix length of the instruction. [This event is alias to DECODE.LCP]",
322dd7415ceSIan Rogers        "EventCode": "0x87",
323dd7415ceSIan Rogers        "EventName": "ILD_STALL.LCP",
324*d1363b94SIan 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. [This event is alias to DECODE.LCP]",
325dd7415ceSIan Rogers        "SampleAfterValue": "500009",
326dd7415ceSIan Rogers        "UMask": "0x1"
327dd7415ceSIan Rogers    },
328dd7415ceSIan Rogers    {
329a5043ed9SIan Rogers        "BriefDescription": "Instruction decoders utilized in a cycle",
330a5043ed9SIan Rogers        "EventCode": "0x55",
331a5043ed9SIan Rogers        "EventName": "INST_DECODED.DECODERS",
332a5043ed9SIan Rogers        "PublicDescription": "Number of decoders utilized in a cycle when the MITE (legacy decode pipeline) fetches instructions.",
333a5043ed9SIan Rogers        "SampleAfterValue": "2000003",
334a5043ed9SIan Rogers        "UMask": "0x1"
335a5043ed9SIan Rogers    },
336a5043ed9SIan Rogers    {
337dd7415ceSIan Rogers        "BriefDescription": "Number of instructions retired. Fixed Counter - architectural event",
338dd7415ceSIan Rogers        "EventName": "INST_RETIRED.ANY",
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        "UMask": "0x1"
343dd7415ceSIan Rogers    },
344dd7415ceSIan Rogers    {
345dd7415ceSIan Rogers        "BriefDescription": "Number of instructions retired. General Counter - architectural event",
346dd7415ceSIan Rogers        "EventCode": "0xc0",
347dd7415ceSIan Rogers        "EventName": "INST_RETIRED.ANY_P",
348dd7415ceSIan Rogers        "PEBS": "1",
349dd7415ceSIan 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.",
350dd7415ceSIan Rogers        "SampleAfterValue": "2000003"
351dd7415ceSIan Rogers    },
352dd7415ceSIan Rogers    {
353dd7415ceSIan Rogers        "BriefDescription": "Number of all retired NOP instructions.",
354dd7415ceSIan Rogers        "EventCode": "0xc0",
355dd7415ceSIan Rogers        "EventName": "INST_RETIRED.NOP",
356dd7415ceSIan Rogers        "PEBS": "1",
35771fbc431SJin Yao        "SampleAfterValue": "2000003",
35871fbc431SJin Yao        "UMask": "0x2"
35971fbc431SJin Yao    },
36071fbc431SJin Yao    {
361dd7415ceSIan Rogers        "BriefDescription": "Precise instruction retired event with a reduced effect of PEBS shadow in IP distribution",
362dd7415ceSIan Rogers        "EventName": "INST_RETIRED.PREC_DIST",
363dd7415ceSIan Rogers        "PEBS": "1",
364dd7415ceSIan 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.",
365dd7415ceSIan Rogers        "SampleAfterValue": "2000003",
366dd7415ceSIan Rogers        "UMask": "0x1"
367dd7415ceSIan Rogers    },
368dd7415ceSIan Rogers    {
369dd7415ceSIan Rogers        "BriefDescription": "Cycles without actually retired instructions.",
370dd7415ceSIan Rogers        "CounterMask": "1",
371dd7415ceSIan Rogers        "EventCode": "0xc0",
372dd7415ceSIan Rogers        "EventName": "INST_RETIRED.STALL_CYCLES",
373dd7415ceSIan Rogers        "Invert": "1",
374dd7415ceSIan Rogers        "PublicDescription": "This event counts cycles without actually retired instructions.",
375dd7415ceSIan Rogers        "SampleAfterValue": "1000003",
376dd7415ceSIan Rogers        "UMask": "0x1"
377dd7415ceSIan Rogers    },
378dd7415ceSIan Rogers    {
379dd7415ceSIan Rogers        "BriefDescription": "Cycles the Backend cluster is recovering after a miss-speculation or a Store Buffer or Load Buffer drain stall.",
380dd7415ceSIan Rogers        "CounterMask": "1",
381dd7415ceSIan Rogers        "EventCode": "0x0D",
382dd7415ceSIan Rogers        "EventName": "INT_MISC.ALL_RECOVERY_CYCLES",
383dd7415ceSIan Rogers        "PublicDescription": "Counts cycles the Backend cluster is recovering after a miss-speculation or a Store Buffer or Load Buffer drain stall.",
384dd7415ceSIan Rogers        "SampleAfterValue": "2000003",
385dd7415ceSIan Rogers        "UMask": "0x3"
386dd7415ceSIan Rogers    },
387dd7415ceSIan Rogers    {
3885d486947SIan Rogers        "BriefDescription": "Clears speculative count",
3895d486947SIan Rogers        "CounterMask": "1",
3905d486947SIan Rogers        "EdgeDetect": "1",
3915d486947SIan Rogers        "EventCode": "0x0D",
3925d486947SIan Rogers        "EventName": "INT_MISC.CLEARS_COUNT",
3935d486947SIan Rogers        "PublicDescription": "Counts the number of speculative clears due to any type of branch misprediction or machine clears",
3945d486947SIan Rogers        "SampleAfterValue": "500009",
3955d486947SIan Rogers        "UMask": "0x1"
3965d486947SIan Rogers    },
3975d486947SIan Rogers    {
398dd7415ceSIan Rogers        "BriefDescription": "Counts cycles after recovery from a branch misprediction or machine clear till the first uop is issued from the resteered path.",
399dd7415ceSIan Rogers        "EventCode": "0x0d",
400dd7415ceSIan Rogers        "EventName": "INT_MISC.CLEAR_RESTEER_CYCLES",
401dd7415ceSIan Rogers        "PublicDescription": "Cycles after recovery from a branch misprediction or machine clear till the first uop is issued from the resteered path.",
402dd7415ceSIan Rogers        "SampleAfterValue": "500009",
403dd7415ceSIan Rogers        "UMask": "0x80"
404dd7415ceSIan Rogers    },
405dd7415ceSIan Rogers    {
406dd7415ceSIan Rogers        "BriefDescription": "Core cycles the allocator was stalled due to recovery from earlier clear event for this thread",
407dd7415ceSIan Rogers        "EventCode": "0x0D",
408dd7415ceSIan Rogers        "EventName": "INT_MISC.RECOVERY_CYCLES",
409dd7415ceSIan Rogers        "PublicDescription": "Counts core cycles when the Resource allocator was stalled due to recovery from an earlier branch misprediction or machine clear event.",
410dd7415ceSIan Rogers        "SampleAfterValue": "500009",
411dd7415ceSIan Rogers        "UMask": "0x1"
412dd7415ceSIan Rogers    },
413dd7415ceSIan Rogers    {
414dd7415ceSIan Rogers        "BriefDescription": "TMA slots where uops got dropped",
415dd7415ceSIan Rogers        "EventCode": "0x0d",
416dd7415ceSIan Rogers        "EventName": "INT_MISC.UOP_DROPPING",
417dd7415ceSIan Rogers        "PublicDescription": "Estimated number of Top-down Microarchitecture Analysis slots that got dropped due to non front-end reasons",
418dd7415ceSIan Rogers        "SampleAfterValue": "1000003",
419dd7415ceSIan Rogers        "UMask": "0x10"
420dd7415ceSIan Rogers    },
421dd7415ceSIan Rogers    {
422dd7415ceSIan Rogers        "BriefDescription": "The number of times that split load operations are temporarily blocked because all resources for handling the split accesses are in use.",
423dd7415ceSIan Rogers        "EventCode": "0x03",
424dd7415ceSIan Rogers        "EventName": "LD_BLOCKS.NO_SR",
425dd7415ceSIan 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.",
426dd7415ceSIan Rogers        "SampleAfterValue": "100003",
427dd7415ceSIan Rogers        "UMask": "0x8"
428dd7415ceSIan Rogers    },
429dd7415ceSIan Rogers    {
430dd7415ceSIan Rogers        "BriefDescription": "Loads blocked due to overlapping with a preceding store that cannot be forwarded.",
431dd7415ceSIan Rogers        "EventCode": "0x03",
432dd7415ceSIan Rogers        "EventName": "LD_BLOCKS.STORE_FORWARD",
433dd7415ceSIan 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.",
434dd7415ceSIan Rogers        "SampleAfterValue": "100003",
435dd7415ceSIan Rogers        "UMask": "0x2"
436dd7415ceSIan Rogers    },
437dd7415ceSIan Rogers    {
438dd7415ceSIan Rogers        "BriefDescription": "False dependencies due to partial compare on address.",
439dd7415ceSIan Rogers        "EventCode": "0x07",
440dd7415ceSIan Rogers        "EventName": "LD_BLOCKS_PARTIAL.ADDRESS_ALIAS",
441dd7415ceSIan Rogers        "PublicDescription": "Counts the number of times a load got blocked due to false dependencies due to partial compare on address.",
442dd7415ceSIan Rogers        "SampleAfterValue": "100003",
443dd7415ceSIan Rogers        "UMask": "0x1"
444dd7415ceSIan Rogers    },
445dd7415ceSIan Rogers    {
446dd7415ceSIan Rogers        "BriefDescription": "Counts the number of demand load dispatches that hit L1D fill buffer (FB) allocated for software prefetch.",
447dd7415ceSIan Rogers        "EventCode": "0x4c",
448dd7415ceSIan Rogers        "EventName": "LOAD_HIT_PREFETCH.SWPF",
449dd7415ceSIan 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.",
450dd7415ceSIan Rogers        "SampleAfterValue": "100003",
451dd7415ceSIan Rogers        "UMask": "0x1"
452dd7415ceSIan Rogers    },
453dd7415ceSIan Rogers    {
454dd7415ceSIan Rogers        "BriefDescription": "Cycles Uops delivered by the LSD, but didn't come from the decoder.",
455dd7415ceSIan Rogers        "CounterMask": "1",
456dd7415ceSIan Rogers        "EventCode": "0xA8",
457dd7415ceSIan Rogers        "EventName": "LSD.CYCLES_ACTIVE",
458dd7415ceSIan Rogers        "PublicDescription": "Counts the cycles when at least one uop is delivered by the LSD (Loop-stream detector).",
459dd7415ceSIan Rogers        "SampleAfterValue": "2000003",
460dd7415ceSIan Rogers        "UMask": "0x1"
461dd7415ceSIan Rogers    },
462dd7415ceSIan Rogers    {
46371fbc431SJin Yao        "BriefDescription": "Cycles optimal number of Uops delivered by the LSD, but did not come from the decoder.",
46471fbc431SJin Yao        "CounterMask": "5",
46571fbc431SJin Yao        "EventCode": "0xa8",
46671fbc431SJin Yao        "EventName": "LSD.CYCLES_OK",
46771fbc431SJin Yao        "PublicDescription": "Counts the cycles when optimal number of uops is delivered by the LSD (Loop-stream detector).",
46871fbc431SJin Yao        "SampleAfterValue": "2000003",
46971fbc431SJin Yao        "UMask": "0x1"
47071fbc431SJin Yao    },
47171fbc431SJin Yao    {
472dd7415ceSIan Rogers        "BriefDescription": "Number of Uops delivered by the LSD.",
473dd7415ceSIan Rogers        "EventCode": "0xa8",
474dd7415ceSIan Rogers        "EventName": "LSD.UOPS",
475dd7415ceSIan Rogers        "PublicDescription": "Counts the number of uops delivered to the back-end by the LSD(Loop Stream Detector).",
476dd7415ceSIan Rogers        "SampleAfterValue": "2000003",
477dd7415ceSIan Rogers        "UMask": "0x1"
478dd7415ceSIan Rogers    },
479dd7415ceSIan Rogers    {
480dd7415ceSIan Rogers        "BriefDescription": "Number of machine clears (nukes) of any type.",
481dd7415ceSIan Rogers        "CounterMask": "1",
482dd7415ceSIan Rogers        "EdgeDetect": "1",
483dd7415ceSIan Rogers        "EventCode": "0xc3",
484dd7415ceSIan Rogers        "EventName": "MACHINE_CLEARS.COUNT",
485dd7415ceSIan Rogers        "PublicDescription": "Counts the number of machine clears (nukes) of any type.",
486dd7415ceSIan Rogers        "SampleAfterValue": "100003",
487dd7415ceSIan Rogers        "UMask": "0x1"
488dd7415ceSIan Rogers    },
489dd7415ceSIan Rogers    {
490dd7415ceSIan Rogers        "BriefDescription": "Self-modifying code (SMC) detected.",
491dd7415ceSIan Rogers        "EventCode": "0xc3",
492dd7415ceSIan Rogers        "EventName": "MACHINE_CLEARS.SMC",
493dd7415ceSIan Rogers        "PublicDescription": "Counts self-modifying code (SMC) detected, which causes a machine clear.",
494dd7415ceSIan Rogers        "SampleAfterValue": "100003",
495dd7415ceSIan Rogers        "UMask": "0x4"
496dd7415ceSIan Rogers    },
497dd7415ceSIan Rogers    {
498dd7415ceSIan Rogers        "BriefDescription": "Increments whenever there is an update to the LBR array.",
499dd7415ceSIan Rogers        "EventCode": "0xcc",
500dd7415ceSIan Rogers        "EventName": "MISC_RETIRED.LBR_INSERTS",
501dd7415ceSIan 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.",
502dd7415ceSIan Rogers        "SampleAfterValue": "100003",
503dd7415ceSIan Rogers        "UMask": "0x20"
504dd7415ceSIan Rogers    },
505dd7415ceSIan Rogers    {
506dd7415ceSIan Rogers        "BriefDescription": "Number of retired PAUSE instructions. This event is not supported on first SKL and KBL products.",
507dd7415ceSIan Rogers        "EventCode": "0xcc",
508dd7415ceSIan Rogers        "EventName": "MISC_RETIRED.PAUSE_INST",
509dd7415ceSIan Rogers        "PublicDescription": "Counts number of retired PAUSE instructions. This event is not supported on first SKL and KBL products.",
510dd7415ceSIan Rogers        "SampleAfterValue": "100003",
511dd7415ceSIan Rogers        "UMask": "0x40"
512dd7415ceSIan Rogers    },
513dd7415ceSIan Rogers    {
514dd7415ceSIan Rogers        "BriefDescription": "Cycles stalled due to no store buffers available. (not including draining form sync).",
515dd7415ceSIan Rogers        "EventCode": "0xa2",
516dd7415ceSIan Rogers        "EventName": "RESOURCE_STALLS.SB",
517dd7415ceSIan 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.",
518dd7415ceSIan Rogers        "SampleAfterValue": "100003",
51971fbc431SJin Yao        "UMask": "0x8"
52071fbc431SJin Yao    },
52171fbc431SJin Yao    {
522dd7415ceSIan Rogers        "BriefDescription": "Counts cycles where the pipeline is stalled due to serializing operations.",
523dd7415ceSIan Rogers        "EventCode": "0xa2",
524dd7415ceSIan Rogers        "EventName": "RESOURCE_STALLS.SCOREBOARD",
525dd7415ceSIan Rogers        "SampleAfterValue": "100003",
526dd7415ceSIan Rogers        "UMask": "0x2"
52771fbc431SJin Yao    },
52871fbc431SJin Yao    {
529dd7415ceSIan Rogers        "BriefDescription": "Cycles when Reservation Station (RS) is empty for the thread",
530dd7415ceSIan Rogers        "EventCode": "0x5e",
531dd7415ceSIan Rogers        "EventName": "RS_EVENTS.EMPTY_CYCLES",
532dd7415ceSIan 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)",
53371fbc431SJin Yao        "SampleAfterValue": "1000003",
53471fbc431SJin Yao        "UMask": "0x1"
53571fbc431SJin Yao    },
53671fbc431SJin Yao    {
537dd7415ceSIan Rogers        "BriefDescription": "Counts end of periods where the Reservation Station (RS) was empty.",
53871fbc431SJin Yao        "CounterMask": "1",
539dd7415ceSIan Rogers        "EdgeDetect": "1",
540dd7415ceSIan Rogers        "EventCode": "0x5E",
541dd7415ceSIan Rogers        "EventName": "RS_EVENTS.EMPTY_END",
54271fbc431SJin Yao        "Invert": "1",
543dd7415ceSIan 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)",
544dd7415ceSIan Rogers        "SampleAfterValue": "100003",
545dd7415ceSIan Rogers        "UMask": "0x1"
546dd7415ceSIan Rogers    },
547dd7415ceSIan Rogers    {
548fb76811aSIan Rogers        "BriefDescription": "TMA slots where no uops were being issued due to lack of back-end resources.",
549fb76811aSIan Rogers        "EventCode": "0xa4",
550fb76811aSIan Rogers        "EventName": "TOPDOWN.BACKEND_BOUND_SLOTS",
551fb76811aSIan 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.",
552fb76811aSIan Rogers        "SampleAfterValue": "10000003",
553fb76811aSIan Rogers        "UMask": "0x2"
554fb76811aSIan Rogers    },
555fb76811aSIan Rogers    {
556fb76811aSIan Rogers        "BriefDescription": "TMA slots wasted due to incorrect speculation by branch mispredictions",
557fb76811aSIan Rogers        "EventCode": "0xa4",
558fb76811aSIan Rogers        "EventName": "TOPDOWN.BR_MISPREDICT_SLOTS",
559*d1363b94SIan 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 speculative path as well as the out-of-order engine recovery past a branch misprediction.",
560fb76811aSIan Rogers        "SampleAfterValue": "10000003",
561fb76811aSIan Rogers        "UMask": "0x8"
562fb76811aSIan Rogers    },
563fb76811aSIan Rogers    {
564fb76811aSIan Rogers        "BriefDescription": "TMA slots available for an unhalted logical processor. Fixed counter - architectural event",
565fb76811aSIan Rogers        "EventName": "TOPDOWN.SLOTS",
566fb76811aSIan 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).",
567fb76811aSIan Rogers        "SampleAfterValue": "10000003",
568fb76811aSIan Rogers        "UMask": "0x4"
569fb76811aSIan Rogers    },
570fb76811aSIan Rogers    {
571fb76811aSIan Rogers        "BriefDescription": "TMA slots available for an unhalted logical processor. General counter - architectural event",
572fb76811aSIan Rogers        "EventCode": "0xa4",
573fb76811aSIan Rogers        "EventName": "TOPDOWN.SLOTS_P",
574fb76811aSIan 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.",
575fb76811aSIan Rogers        "SampleAfterValue": "10000003",
576fb76811aSIan Rogers        "UMask": "0x1"
577fb76811aSIan Rogers    },
578fb76811aSIan Rogers    {
579dd7415ceSIan Rogers        "BriefDescription": "Number of uops decoded out of instructions exclusively fetched by decoder 0",
580dd7415ceSIan Rogers        "EventCode": "0x56",
581dd7415ceSIan Rogers        "EventName": "UOPS_DECODED.DEC0",
582dd7415ceSIan Rogers        "PublicDescription": "Uops exclusively fetched by decoder 0",
58371fbc431SJin Yao        "SampleAfterValue": "1000003",
58471fbc431SJin Yao        "UMask": "0x1"
58571fbc431SJin Yao    },
58671fbc431SJin Yao    {
587dd7415ceSIan Rogers        "BriefDescription": "Number of uops executed on port 0",
588dd7415ceSIan Rogers        "EventCode": "0xa1",
589dd7415ceSIan Rogers        "EventName": "UOPS_DISPATCHED.PORT_0",
590dd7415ceSIan 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.",
591dd7415ceSIan Rogers        "SampleAfterValue": "2000003",
592dd7415ceSIan Rogers        "UMask": "0x1"
593dd7415ceSIan Rogers    },
594dd7415ceSIan Rogers    {
595dd7415ceSIan Rogers        "BriefDescription": "Number of uops executed on port 1",
596dd7415ceSIan Rogers        "EventCode": "0xa1",
597dd7415ceSIan Rogers        "EventName": "UOPS_DISPATCHED.PORT_1",
598dd7415ceSIan 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.",
599dd7415ceSIan Rogers        "SampleAfterValue": "2000003",
600dd7415ceSIan Rogers        "UMask": "0x2"
601dd7415ceSIan Rogers    },
602dd7415ceSIan Rogers    {
603dd7415ceSIan Rogers        "BriefDescription": "Number of uops executed on port 2 and 3",
604dd7415ceSIan Rogers        "EventCode": "0xa1",
605dd7415ceSIan Rogers        "EventName": "UOPS_DISPATCHED.PORT_2_3",
606dd7415ceSIan 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.",
607dd7415ceSIan Rogers        "SampleAfterValue": "2000003",
608dd7415ceSIan Rogers        "UMask": "0x4"
609dd7415ceSIan Rogers    },
610dd7415ceSIan Rogers    {
611dd7415ceSIan Rogers        "BriefDescription": "Number of uops executed on port 4 and 9",
612dd7415ceSIan Rogers        "EventCode": "0xa1",
613dd7415ceSIan Rogers        "EventName": "UOPS_DISPATCHED.PORT_4_9",
614dd7415ceSIan 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.",
615dd7415ceSIan Rogers        "SampleAfterValue": "2000003",
616dd7415ceSIan Rogers        "UMask": "0x10"
617dd7415ceSIan Rogers    },
618dd7415ceSIan Rogers    {
619dd7415ceSIan Rogers        "BriefDescription": "Number of uops executed on port 5",
620dd7415ceSIan Rogers        "EventCode": "0xa1",
621dd7415ceSIan Rogers        "EventName": "UOPS_DISPATCHED.PORT_5",
622dd7415ceSIan 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.",
623dd7415ceSIan Rogers        "SampleAfterValue": "2000003",
624dd7415ceSIan Rogers        "UMask": "0x20"
625dd7415ceSIan Rogers    },
626dd7415ceSIan Rogers    {
627dd7415ceSIan Rogers        "BriefDescription": "Number of uops executed on port 6",
628dd7415ceSIan Rogers        "EventCode": "0xa1",
629dd7415ceSIan Rogers        "EventName": "UOPS_DISPATCHED.PORT_6",
630dd7415ceSIan 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.",
631dd7415ceSIan Rogers        "SampleAfterValue": "2000003",
632dd7415ceSIan Rogers        "UMask": "0x40"
633dd7415ceSIan Rogers    },
634dd7415ceSIan Rogers    {
635dd7415ceSIan Rogers        "BriefDescription": "Number of uops executed on port 7 and 8",
636dd7415ceSIan Rogers        "EventCode": "0xa1",
637dd7415ceSIan Rogers        "EventName": "UOPS_DISPATCHED.PORT_7_8",
638dd7415ceSIan 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.",
639dd7415ceSIan Rogers        "SampleAfterValue": "2000003",
640dd7415ceSIan Rogers        "UMask": "0x80"
641dd7415ceSIan Rogers    },
642dd7415ceSIan Rogers    {
643dd7415ceSIan Rogers        "BriefDescription": "Number of uops executed on the core.",
644dd7415ceSIan Rogers        "EventCode": "0xB1",
645dd7415ceSIan Rogers        "EventName": "UOPS_EXECUTED.CORE",
646dd7415ceSIan Rogers        "PublicDescription": "Counts the number of uops executed from any thread.",
64771fbc431SJin Yao        "SampleAfterValue": "2000003",
64871fbc431SJin Yao        "UMask": "0x2"
64971fbc431SJin Yao    },
65071fbc431SJin Yao    {
65171fbc431SJin Yao        "BriefDescription": "Cycles at least 1 micro-op is executed from any thread on physical core.",
65271fbc431SJin Yao        "CounterMask": "1",
65371fbc431SJin Yao        "EventCode": "0xB1",
65471fbc431SJin Yao        "EventName": "UOPS_EXECUTED.CORE_CYCLES_GE_1",
65571fbc431SJin Yao        "PublicDescription": "Counts cycles when at least 1 micro-op is executed from any thread on physical core.",
65671fbc431SJin Yao        "SampleAfterValue": "2000003",
65771fbc431SJin Yao        "UMask": "0x2"
65871fbc431SJin Yao    },
65971fbc431SJin Yao    {
660dd7415ceSIan Rogers        "BriefDescription": "Cycles at least 2 micro-op is executed from any thread on physical core.",
661dd7415ceSIan Rogers        "CounterMask": "2",
662dd7415ceSIan Rogers        "EventCode": "0xB1",
663dd7415ceSIan Rogers        "EventName": "UOPS_EXECUTED.CORE_CYCLES_GE_2",
664dd7415ceSIan Rogers        "PublicDescription": "Counts cycles when at least 2 micro-ops are executed from any thread on physical core.",
665dd7415ceSIan Rogers        "SampleAfterValue": "2000003",
666dd7415ceSIan Rogers        "UMask": "0x2"
66771fbc431SJin Yao    },
66871fbc431SJin Yao    {
669dd7415ceSIan Rogers        "BriefDescription": "Cycles at least 3 micro-op is executed from any thread on physical core.",
670dd7415ceSIan Rogers        "CounterMask": "3",
671dd7415ceSIan Rogers        "EventCode": "0xB1",
672dd7415ceSIan Rogers        "EventName": "UOPS_EXECUTED.CORE_CYCLES_GE_3",
673dd7415ceSIan Rogers        "PublicDescription": "Counts cycles when at least 3 micro-ops are executed from any thread on physical core.",
674dd7415ceSIan Rogers        "SampleAfterValue": "2000003",
675dd7415ceSIan Rogers        "UMask": "0x2"
676dd7415ceSIan Rogers    },
677dd7415ceSIan Rogers    {
678dd7415ceSIan Rogers        "BriefDescription": "Cycles at least 4 micro-op is executed from any thread on physical core.",
679dd7415ceSIan Rogers        "CounterMask": "4",
680dd7415ceSIan Rogers        "EventCode": "0xB1",
681dd7415ceSIan Rogers        "EventName": "UOPS_EXECUTED.CORE_CYCLES_GE_4",
682dd7415ceSIan Rogers        "PublicDescription": "Counts cycles when at least 4 micro-ops are executed from any thread on physical core.",
683dd7415ceSIan Rogers        "SampleAfterValue": "2000003",
684dd7415ceSIan Rogers        "UMask": "0x2"
685dd7415ceSIan Rogers    },
686dd7415ceSIan Rogers    {
687dd7415ceSIan Rogers        "BriefDescription": "Cycles where at least 1 uop was executed per-thread",
688dd7415ceSIan Rogers        "CounterMask": "1",
689dd7415ceSIan Rogers        "EventCode": "0xb1",
690dd7415ceSIan Rogers        "EventName": "UOPS_EXECUTED.CYCLES_GE_1",
691dd7415ceSIan Rogers        "PublicDescription": "Cycles where at least 1 uop was executed per-thread.",
692dd7415ceSIan Rogers        "SampleAfterValue": "2000003",
693dd7415ceSIan Rogers        "UMask": "0x1"
694dd7415ceSIan Rogers    },
695dd7415ceSIan Rogers    {
696dd7415ceSIan Rogers        "BriefDescription": "Cycles where at least 2 uops were executed per-thread",
697dd7415ceSIan Rogers        "CounterMask": "2",
698dd7415ceSIan Rogers        "EventCode": "0xb1",
699dd7415ceSIan Rogers        "EventName": "UOPS_EXECUTED.CYCLES_GE_2",
700dd7415ceSIan Rogers        "PublicDescription": "Cycles where at least 2 uops were executed per-thread.",
701dd7415ceSIan Rogers        "SampleAfterValue": "2000003",
702dd7415ceSIan Rogers        "UMask": "0x1"
703dd7415ceSIan Rogers    },
704dd7415ceSIan Rogers    {
705dd7415ceSIan Rogers        "BriefDescription": "Cycles where at least 3 uops were executed per-thread",
706dd7415ceSIan Rogers        "CounterMask": "3",
707dd7415ceSIan Rogers        "EventCode": "0xb1",
708dd7415ceSIan Rogers        "EventName": "UOPS_EXECUTED.CYCLES_GE_3",
709dd7415ceSIan Rogers        "PublicDescription": "Cycles where at least 3 uops were executed per-thread.",
710dd7415ceSIan Rogers        "SampleAfterValue": "2000003",
711dd7415ceSIan Rogers        "UMask": "0x1"
712dd7415ceSIan Rogers    },
713dd7415ceSIan Rogers    {
714dd7415ceSIan Rogers        "BriefDescription": "Cycles where at least 4 uops were executed per-thread",
715dd7415ceSIan Rogers        "CounterMask": "4",
716dd7415ceSIan Rogers        "EventCode": "0xb1",
717dd7415ceSIan Rogers        "EventName": "UOPS_EXECUTED.CYCLES_GE_4",
718dd7415ceSIan Rogers        "PublicDescription": "Cycles where at least 4 uops were executed per-thread.",
719dd7415ceSIan Rogers        "SampleAfterValue": "2000003",
720dd7415ceSIan Rogers        "UMask": "0x1"
721dd7415ceSIan Rogers    },
722dd7415ceSIan Rogers    {
723dd7415ceSIan Rogers        "BriefDescription": "Counts number of cycles no uops were dispatched to be executed on this thread.",
724dd7415ceSIan Rogers        "CounterMask": "1",
725dd7415ceSIan Rogers        "EventCode": "0xB1",
726dd7415ceSIan Rogers        "EventName": "UOPS_EXECUTED.STALL_CYCLES",
727dd7415ceSIan Rogers        "Invert": "1",
728dd7415ceSIan Rogers        "PublicDescription": "Counts cycles during which no uops were dispatched from the Reservation Station (RS) per thread.",
729dd7415ceSIan Rogers        "SampleAfterValue": "2000003",
730dd7415ceSIan Rogers        "UMask": "0x1"
731dd7415ceSIan Rogers    },
732dd7415ceSIan Rogers    {
733dd7415ceSIan Rogers        "BriefDescription": "Counts the number of uops to be executed per-thread each cycle.",
734dd7415ceSIan Rogers        "EventCode": "0xb1",
735dd7415ceSIan Rogers        "EventName": "UOPS_EXECUTED.THREAD",
736dd7415ceSIan Rogers        "SampleAfterValue": "2000003",
737dd7415ceSIan Rogers        "UMask": "0x1"
738dd7415ceSIan Rogers    },
739dd7415ceSIan Rogers    {
740dd7415ceSIan Rogers        "BriefDescription": "Counts the number of x87 uops dispatched.",
741dd7415ceSIan Rogers        "EventCode": "0xB1",
742dd7415ceSIan Rogers        "EventName": "UOPS_EXECUTED.X87",
743dd7415ceSIan Rogers        "PublicDescription": "Counts the number of x87 uops executed.",
744dd7415ceSIan Rogers        "SampleAfterValue": "2000003",
74571fbc431SJin Yao        "UMask": "0x10"
74671fbc431SJin Yao    },
74771fbc431SJin Yao    {
748dd7415ceSIan Rogers        "BriefDescription": "Uops that RAT issues to RS",
749dd7415ceSIan Rogers        "EventCode": "0x0e",
750dd7415ceSIan Rogers        "EventName": "UOPS_ISSUED.ANY",
751dd7415ceSIan Rogers        "PublicDescription": "Counts the number of uops that the Resource Allocation Table (RAT) issues to the Reservation Station (RS).",
75271fbc431SJin Yao        "SampleAfterValue": "2000003",
75371fbc431SJin Yao        "UMask": "0x1"
75471fbc431SJin Yao    },
75571fbc431SJin Yao    {
756dd7415ceSIan Rogers        "BriefDescription": "Cycles when RAT does not issue Uops to RS for the thread",
757dd7415ceSIan Rogers        "CounterMask": "1",
758dd7415ceSIan Rogers        "EventCode": "0x0E",
759dd7415ceSIan Rogers        "EventName": "UOPS_ISSUED.STALL_CYCLES",
760dd7415ceSIan Rogers        "Invert": "1",
761dd7415ceSIan 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.",
762dd7415ceSIan Rogers        "SampleAfterValue": "1000003",
763dd7415ceSIan Rogers        "UMask": "0x1"
764dd7415ceSIan Rogers    },
765dd7415ceSIan Rogers    {
766dd7415ceSIan Rogers        "BriefDescription": "Uops inserted at issue-stage in order to preserve upper bits of vector registers.",
767dd7415ceSIan Rogers        "EventCode": "0x0e",
768dd7415ceSIan Rogers        "EventName": "UOPS_ISSUED.VECTOR_WIDTH_MISMATCH",
7695d486947SIan 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.",
770dd7415ceSIan Rogers        "SampleAfterValue": "100003",
771dd7415ceSIan Rogers        "UMask": "0x2"
772dd7415ceSIan Rogers    },
773dd7415ceSIan Rogers    {
774dd7415ceSIan Rogers        "BriefDescription": "Retirement slots used.",
775dd7415ceSIan Rogers        "EventCode": "0xc2",
776dd7415ceSIan Rogers        "EventName": "UOPS_RETIRED.SLOTS",
777dd7415ceSIan Rogers        "PublicDescription": "Counts the retirement slots used each cycle.",
778dd7415ceSIan Rogers        "SampleAfterValue": "2000003",
779dd7415ceSIan Rogers        "UMask": "0x2"
780dd7415ceSIan Rogers    },
781dd7415ceSIan Rogers    {
782dd7415ceSIan Rogers        "BriefDescription": "Cycles without actually retired uops.",
783dd7415ceSIan Rogers        "CounterMask": "1",
784dd7415ceSIan Rogers        "EventCode": "0xc2",
785dd7415ceSIan Rogers        "EventName": "UOPS_RETIRED.STALL_CYCLES",
786dd7415ceSIan Rogers        "Invert": "1",
787dd7415ceSIan Rogers        "PublicDescription": "This event counts cycles without actually retired uops.",
788dd7415ceSIan Rogers        "SampleAfterValue": "1000003",
789dd7415ceSIan Rogers        "UMask": "0x2"
790dd7415ceSIan Rogers    },
791dd7415ceSIan Rogers    {
792dd7415ceSIan Rogers        "BriefDescription": "Cycles with less than 10 actually retired uops.",
793dd7415ceSIan Rogers        "CounterMask": "10",
794dd7415ceSIan Rogers        "EventCode": "0xc2",
795dd7415ceSIan Rogers        "EventName": "UOPS_RETIRED.TOTAL_CYCLES",
796dd7415ceSIan Rogers        "Invert": "1",
7975d486947SIan Rogers        "PublicDescription": "Counts the number of cycles using always true condition (uops_ret < 16) applied to non PEBS uops retired event.",
798dd7415ceSIan Rogers        "SampleAfterValue": "1000003",
799dd7415ceSIan Rogers        "UMask": "0x2"
800b115df07SHaiyan Song    }
801b115df07SHaiyan Song]
802