155d42d27SAndi Kleen[
255d42d27SAndi Kleen    {
3*ff3d02b2SIan Rogers        "BriefDescription": "Counts the number of branch instructions retired",
455d42d27SAndi Kleen        "Counter": "0,1",
5*ff3d02b2SIan Rogers        "EventCode": "0xC4",
655d42d27SAndi Kleen        "EventName": "BR_INST_RETIRED.ALL_BRANCHES",
7*ff3d02b2SIan Rogers        "PEBS": "1",
8*ff3d02b2SIan Rogers        "SampleAfterValue": "200003"
955d42d27SAndi Kleen    },
1055d42d27SAndi Kleen    {
11*ff3d02b2SIan Rogers        "BriefDescription": "Counts the number of near CALL branch instructions retired.",
1255d42d27SAndi Kleen        "Counter": "0,1",
1355d42d27SAndi Kleen        "EventCode": "0xC4",
1455d42d27SAndi Kleen        "EventName": "BR_INST_RETIRED.CALL",
15*ff3d02b2SIan Rogers        "PEBS": "1",
1655d42d27SAndi Kleen        "SampleAfterValue": "200003",
17*ff3d02b2SIan Rogers        "UMask": "0xf9"
1855d42d27SAndi Kleen    },
1955d42d27SAndi Kleen    {
20*ff3d02b2SIan Rogers        "BriefDescription": "Counts the number of far branch instructions retired.",
2155d42d27SAndi Kleen        "Counter": "0,1",
2255d42d27SAndi Kleen        "EventCode": "0xC4",
2355d42d27SAndi Kleen        "EventName": "BR_INST_RETIRED.FAR_BRANCH",
24*ff3d02b2SIan Rogers        "PEBS": "1",
2555d42d27SAndi Kleen        "SampleAfterValue": "200003",
26*ff3d02b2SIan Rogers        "UMask": "0xbf"
2755d42d27SAndi Kleen    },
2855d42d27SAndi Kleen    {
29*ff3d02b2SIan Rogers        "BriefDescription": "Counts the number of near indirect CALL branch instructions retired.",
3055d42d27SAndi Kleen        "Counter": "0,1",
31*ff3d02b2SIan Rogers        "EventCode": "0xC4",
32*ff3d02b2SIan Rogers        "EventName": "BR_INST_RETIRED.IND_CALL",
33*ff3d02b2SIan Rogers        "PEBS": "1",
34*ff3d02b2SIan Rogers        "SampleAfterValue": "200003",
35*ff3d02b2SIan Rogers        "UMask": "0xfb"
36*ff3d02b2SIan Rogers    },
37*ff3d02b2SIan Rogers    {
38*ff3d02b2SIan Rogers        "BriefDescription": "Counts the number of branch instructions retired that were conditional jumps.",
39*ff3d02b2SIan Rogers        "Counter": "0,1",
40*ff3d02b2SIan Rogers        "EventCode": "0xC4",
41*ff3d02b2SIan Rogers        "EventName": "BR_INST_RETIRED.JCC",
42*ff3d02b2SIan Rogers        "PEBS": "1",
43*ff3d02b2SIan Rogers        "SampleAfterValue": "200003",
44*ff3d02b2SIan Rogers        "UMask": "0x7e"
45*ff3d02b2SIan Rogers    },
46*ff3d02b2SIan Rogers    {
47*ff3d02b2SIan Rogers        "BriefDescription": "Counts the number of branch instructions retired that were near indirect CALL or near indirect JMP.",
48*ff3d02b2SIan Rogers        "Counter": "0,1",
49*ff3d02b2SIan Rogers        "EventCode": "0xC4",
50*ff3d02b2SIan Rogers        "EventName": "BR_INST_RETIRED.NON_RETURN_IND",
51*ff3d02b2SIan Rogers        "PEBS": "1",
52*ff3d02b2SIan Rogers        "SampleAfterValue": "200003",
53*ff3d02b2SIan Rogers        "UMask": "0xeb"
54*ff3d02b2SIan Rogers    },
55*ff3d02b2SIan Rogers    {
56*ff3d02b2SIan Rogers        "BriefDescription": "Counts the number of near relative CALL branch instructions retired.",
57*ff3d02b2SIan Rogers        "Counter": "0,1",
58*ff3d02b2SIan Rogers        "EventCode": "0xC4",
59*ff3d02b2SIan Rogers        "EventName": "BR_INST_RETIRED.REL_CALL",
60*ff3d02b2SIan Rogers        "PEBS": "1",
61*ff3d02b2SIan Rogers        "SampleAfterValue": "200003",
62*ff3d02b2SIan Rogers        "UMask": "0xfd"
63*ff3d02b2SIan Rogers    },
64*ff3d02b2SIan Rogers    {
65*ff3d02b2SIan Rogers        "BriefDescription": "Counts the number of near RET branch instructions retired.",
66*ff3d02b2SIan Rogers        "Counter": "0,1",
67*ff3d02b2SIan Rogers        "EventCode": "0xC4",
68*ff3d02b2SIan Rogers        "EventName": "BR_INST_RETIRED.RETURN",
69*ff3d02b2SIan Rogers        "PEBS": "1",
70*ff3d02b2SIan Rogers        "SampleAfterValue": "200003",
71*ff3d02b2SIan Rogers        "UMask": "0xf7"
72*ff3d02b2SIan Rogers    },
73*ff3d02b2SIan Rogers    {
74*ff3d02b2SIan Rogers        "BriefDescription": "Counts the number of branch instructions retired that were conditional jumps and predicted taken.",
75*ff3d02b2SIan Rogers        "Counter": "0,1",
76*ff3d02b2SIan Rogers        "EventCode": "0xC4",
77*ff3d02b2SIan Rogers        "EventName": "BR_INST_RETIRED.TAKEN_JCC",
78*ff3d02b2SIan Rogers        "PEBS": "1",
79*ff3d02b2SIan Rogers        "SampleAfterValue": "200003",
80*ff3d02b2SIan Rogers        "UMask": "0xfe"
81*ff3d02b2SIan Rogers    },
82*ff3d02b2SIan Rogers    {
83*ff3d02b2SIan Rogers        "BriefDescription": "Counts the number of mispredicted branch instructions retired",
84*ff3d02b2SIan Rogers        "Counter": "0,1",
85*ff3d02b2SIan Rogers        "EventCode": "0xC5",
8655d42d27SAndi Kleen        "EventName": "BR_MISP_RETIRED.ALL_BRANCHES",
87*ff3d02b2SIan Rogers        "PEBS": "1",
88*ff3d02b2SIan Rogers        "SampleAfterValue": "200003"
8955d42d27SAndi Kleen    },
9055d42d27SAndi Kleen    {
91*ff3d02b2SIan Rogers        "BriefDescription": "Counts the number of mispredicted near CALL branch instructions retired.",
9255d42d27SAndi Kleen        "Counter": "0,1",
93*ff3d02b2SIan Rogers        "EventCode": "0xC5",
94*ff3d02b2SIan Rogers        "EventName": "BR_MISP_RETIRED.CALL",
95*ff3d02b2SIan Rogers        "PEBS": "1",
9655d42d27SAndi Kleen        "SampleAfterValue": "200003",
97*ff3d02b2SIan Rogers        "UMask": "0xf9"
9855d42d27SAndi Kleen    },
9955d42d27SAndi Kleen    {
100*ff3d02b2SIan Rogers        "BriefDescription": "Counts the number of mispredicted far branch instructions retired.",
10155d42d27SAndi Kleen        "Counter": "0,1",
102*ff3d02b2SIan Rogers        "EventCode": "0xC5",
103*ff3d02b2SIan Rogers        "EventName": "BR_MISP_RETIRED.FAR_BRANCH",
104*ff3d02b2SIan Rogers        "PEBS": "1",
10555d42d27SAndi Kleen        "SampleAfterValue": "200003",
106*ff3d02b2SIan Rogers        "UMask": "0xbf"
10755d42d27SAndi Kleen    },
10855d42d27SAndi Kleen    {
109*ff3d02b2SIan Rogers        "BriefDescription": "Counts the number of mispredicted near indirect CALL branch instructions retired.",
11055d42d27SAndi Kleen        "Counter": "0,1",
111*ff3d02b2SIan Rogers        "EventCode": "0xC5",
11255d42d27SAndi Kleen        "EventName": "BR_MISP_RETIRED.IND_CALL",
113*ff3d02b2SIan Rogers        "PEBS": "1",
11455d42d27SAndi Kleen        "SampleAfterValue": "200003",
115*ff3d02b2SIan Rogers        "UMask": "0xfb"
11655d42d27SAndi Kleen    },
11755d42d27SAndi Kleen    {
118*ff3d02b2SIan Rogers        "BriefDescription": "Counts the number of mispredicted branch instructions retired that were conditional jumps.",
11955d42d27SAndi Kleen        "Counter": "0,1",
120*ff3d02b2SIan Rogers        "EventCode": "0xC5",
121*ff3d02b2SIan Rogers        "EventName": "BR_MISP_RETIRED.JCC",
122*ff3d02b2SIan Rogers        "PEBS": "1",
12355d42d27SAndi Kleen        "SampleAfterValue": "200003",
124*ff3d02b2SIan Rogers        "UMask": "0x7e"
12555d42d27SAndi Kleen    },
12655d42d27SAndi Kleen    {
127*ff3d02b2SIan Rogers        "BriefDescription": "Counts the number of mispredicted branch instructions retired that were near indirect CALL or near indirect JMP.",
12855d42d27SAndi Kleen        "Counter": "0,1",
129*ff3d02b2SIan Rogers        "EventCode": "0xC5",
13055d42d27SAndi Kleen        "EventName": "BR_MISP_RETIRED.NON_RETURN_IND",
131*ff3d02b2SIan Rogers        "PEBS": "1",
13255d42d27SAndi Kleen        "SampleAfterValue": "200003",
133*ff3d02b2SIan Rogers        "UMask": "0xeb"
13455d42d27SAndi Kleen    },
13555d42d27SAndi Kleen    {
136*ff3d02b2SIan Rogers        "BriefDescription": "Counts the number of mispredicted near relative CALL branch instructions retired.",
13755d42d27SAndi Kleen        "Counter": "0,1",
138*ff3d02b2SIan Rogers        "EventCode": "0xC5",
139*ff3d02b2SIan Rogers        "EventName": "BR_MISP_RETIRED.REL_CALL",
140*ff3d02b2SIan Rogers        "PEBS": "1",
14155d42d27SAndi Kleen        "SampleAfterValue": "200003",
142*ff3d02b2SIan Rogers        "UMask": "0xfd"
14355d42d27SAndi Kleen    },
14455d42d27SAndi Kleen    {
145*ff3d02b2SIan Rogers        "BriefDescription": "Counts the number of mispredicted near RET branch instructions retired.",
14655d42d27SAndi Kleen        "Counter": "0,1",
147*ff3d02b2SIan Rogers        "EventCode": "0xC5",
148*ff3d02b2SIan Rogers        "EventName": "BR_MISP_RETIRED.RETURN",
149*ff3d02b2SIan Rogers        "PEBS": "1",
15055d42d27SAndi Kleen        "SampleAfterValue": "200003",
151*ff3d02b2SIan Rogers        "UMask": "0xf7"
15255d42d27SAndi Kleen    },
15355d42d27SAndi Kleen    {
154*ff3d02b2SIan Rogers        "BriefDescription": "Counts the number of mispredicted branch instructions retired that were conditional jumps and predicted taken.",
15555d42d27SAndi Kleen        "Counter": "0,1",
156*ff3d02b2SIan Rogers        "EventCode": "0xC5",
157*ff3d02b2SIan Rogers        "EventName": "BR_MISP_RETIRED.TAKEN_JCC",
158*ff3d02b2SIan Rogers        "PEBS": "1",
15955d42d27SAndi Kleen        "SampleAfterValue": "200003",
160*ff3d02b2SIan Rogers        "UMask": "0xfe"
16155d42d27SAndi Kleen    },
16255d42d27SAndi Kleen    {
163*ff3d02b2SIan Rogers        "BriefDescription": "Counts the number of unhalted reference clock cycles",
16455d42d27SAndi Kleen        "Counter": "0,1",
16555d42d27SAndi Kleen        "EventCode": "0x3C",
16655d42d27SAndi Kleen        "EventName": "CPU_CLK_UNHALTED.REF",
16755d42d27SAndi Kleen        "SampleAfterValue": "2000003",
168*ff3d02b2SIan Rogers        "UMask": "0x1"
16955d42d27SAndi Kleen    },
17055d42d27SAndi Kleen    {
171*ff3d02b2SIan Rogers        "BriefDescription": "Fixed Counter: Counts the number of unhalted reference clock cycles",
17255d42d27SAndi Kleen        "Counter": "Fixed counter 3",
17355d42d27SAndi Kleen        "EventName": "CPU_CLK_UNHALTED.REF_TSC",
17455d42d27SAndi Kleen        "SampleAfterValue": "2000003",
175*ff3d02b2SIan Rogers        "UMask": "0x3"
17655d42d27SAndi Kleen    },
17755d42d27SAndi Kleen    {
178*ff3d02b2SIan Rogers        "BriefDescription": "Fixed Counter: Counts the number of unhalted core clock cycles",
179*ff3d02b2SIan Rogers        "Counter": "Fixed counter 2",
180*ff3d02b2SIan Rogers        "EventName": "CPU_CLK_UNHALTED.THREAD",
181*ff3d02b2SIan Rogers        "PublicDescription": "This event 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",
182*ff3d02b2SIan Rogers        "SampleAfterValue": "2000003",
183*ff3d02b2SIan Rogers        "UMask": "0x2"
184*ff3d02b2SIan Rogers    },
185*ff3d02b2SIan Rogers    {
186*ff3d02b2SIan Rogers        "BriefDescription": "Counts the number of unhalted core clock cycles",
18755d42d27SAndi Kleen        "Counter": "0,1",
188*ff3d02b2SIan Rogers        "EventCode": "0x3C",
189*ff3d02b2SIan Rogers        "EventName": "CPU_CLK_UNHALTED.THREAD_P",
190*ff3d02b2SIan Rogers        "SampleAfterValue": "2000003"
19155d42d27SAndi Kleen    },
19255d42d27SAndi Kleen    {
193*ff3d02b2SIan Rogers        "BriefDescription": "Cycles the number of core cycles when divider is busy.  Does not imply a stall waiting for the divider.",
19455d42d27SAndi Kleen        "Counter": "0,1",
195*ff3d02b2SIan Rogers        "EventCode": "0xCD",
196*ff3d02b2SIan Rogers        "EventName": "CYCLES_DIV_BUSY.ALL",
197*ff3d02b2SIan Rogers        "PublicDescription": "This event counts cycles when the divider is busy. More specifically cycles when the divide unit is unable to accept a new divide uop because it is busy processing a previously dispatched uop. The cycles will be counted irrespective of whether or not another divide uop is waiting to enter the divide unit (from the RS). This event counts integer divides, x87 divides, divss, divsd, sqrtss, sqrtsd event and does not count vector divides.",
198*ff3d02b2SIan Rogers        "SampleAfterValue": "2000003",
199*ff3d02b2SIan Rogers        "UMask": "0x1"
20055d42d27SAndi Kleen    },
20155d42d27SAndi Kleen    {
202*ff3d02b2SIan Rogers        "BriefDescription": "Fixed Counter: Counts the number of instructions retired",
203*ff3d02b2SIan Rogers        "Counter": "Fixed counter 1",
204*ff3d02b2SIan Rogers        "EventName": "INST_RETIRED.ANY",
205*ff3d02b2SIan Rogers        "PublicDescription": "This event counts the number of instructions that retire.  For instructions that consist of multiple micro-ops, this event counts exactly once, as the last micro-op of the instruction retires.  The event continues counting while instructions retire, including during interrupt service routines caused by hardware interrupts, faults or traps.",
206*ff3d02b2SIan Rogers        "SampleAfterValue": "2000003",
207*ff3d02b2SIan Rogers        "UMask": "0x1"
208*ff3d02b2SIan Rogers    },
209*ff3d02b2SIan Rogers    {
210*ff3d02b2SIan Rogers        "BriefDescription": "Counts the total number of instructions retired",
21155d42d27SAndi Kleen        "Counter": "0,1",
212*ff3d02b2SIan Rogers        "EventCode": "0xC0",
213*ff3d02b2SIan Rogers        "EventName": "INST_RETIRED.ANY_P",
214*ff3d02b2SIan Rogers        "SampleAfterValue": "2000003"
21555d42d27SAndi Kleen    },
21655d42d27SAndi Kleen    {
217*ff3d02b2SIan Rogers        "BriefDescription": "Counts all nukes",
218*ff3d02b2SIan Rogers        "Counter": "0,1",
219*ff3d02b2SIan Rogers        "EventCode": "0xC3",
220*ff3d02b2SIan Rogers        "EventName": "MACHINE_CLEARS.ALL",
221*ff3d02b2SIan Rogers        "SampleAfterValue": "200003",
222*ff3d02b2SIan Rogers        "UMask": "0x8"
223*ff3d02b2SIan Rogers    },
224*ff3d02b2SIan Rogers    {
225*ff3d02b2SIan Rogers        "BriefDescription": "Counts the number of times that the machine clears due to program modifying data within 1K of a recently fetched code page",
226*ff3d02b2SIan Rogers        "Counter": "0,1",
227*ff3d02b2SIan Rogers        "EventCode": "0xC3",
228*ff3d02b2SIan Rogers        "EventName": "MACHINE_CLEARS.SMC",
229*ff3d02b2SIan Rogers        "SampleAfterValue": "200003",
230*ff3d02b2SIan Rogers        "UMask": "0x1"
231*ff3d02b2SIan Rogers    },
232*ff3d02b2SIan Rogers    {
233*ff3d02b2SIan Rogers        "BriefDescription": "Counts the total number of core cycles when no micro-ops are allocated for any reason.",
234*ff3d02b2SIan Rogers        "Counter": "0,1",
235*ff3d02b2SIan Rogers        "EventCode": "0xCA",
236*ff3d02b2SIan Rogers        "EventName": "NO_ALLOC_CYCLES.ALL",
237*ff3d02b2SIan Rogers        "SampleAfterValue": "200003",
238*ff3d02b2SIan Rogers        "UMask": "0x7f"
239*ff3d02b2SIan Rogers    },
240*ff3d02b2SIan Rogers    {
241*ff3d02b2SIan Rogers        "BriefDescription": "Counts the number of core cycles when no micro-ops are allocated and the alloc pipe is stalled waiting for a mispredicted branch to retire.",
242*ff3d02b2SIan Rogers        "Counter": "0,1",
243*ff3d02b2SIan Rogers        "EventCode": "0xCA",
244*ff3d02b2SIan Rogers        "EventName": "NO_ALLOC_CYCLES.MISPREDICTS",
245*ff3d02b2SIan Rogers        "PublicDescription": "This event counts the number of core cycles when no uops are allocated and the alloc pipe is stalled waiting for a mispredicted branch to retire.",
246*ff3d02b2SIan Rogers        "SampleAfterValue": "200003",
247*ff3d02b2SIan Rogers        "UMask": "0x4"
248*ff3d02b2SIan Rogers    },
249*ff3d02b2SIan Rogers    {
250*ff3d02b2SIan Rogers        "BriefDescription": "Counts the number of core cycles when no micro-ops are allocated, the IQ is empty, and no other condition is blocking allocation.",
251*ff3d02b2SIan Rogers        "Counter": "0,1",
252*ff3d02b2SIan Rogers        "EventCode": "0xCA",
253*ff3d02b2SIan Rogers        "EventName": "NO_ALLOC_CYCLES.NOT_DELIVERED",
254*ff3d02b2SIan Rogers        "PublicDescription": "This event counts the number of core cycles when no uops are allocated, the instruction queue is empty and the alloc pipe is stalled waiting for instructions to be fetched.",
255*ff3d02b2SIan Rogers        "SampleAfterValue": "200003",
256*ff3d02b2SIan Rogers        "UMask": "0x90"
257*ff3d02b2SIan Rogers    },
258*ff3d02b2SIan Rogers    {
259*ff3d02b2SIan Rogers        "BriefDescription": "Counts the number of core cycles when no micro-ops are allocated and a RATstall (caused by reservation station full) is asserted.",
260*ff3d02b2SIan Rogers        "Counter": "0,1",
261*ff3d02b2SIan Rogers        "EventCode": "0xCA",
262*ff3d02b2SIan Rogers        "EventName": "NO_ALLOC_CYCLES.RAT_STALL",
263*ff3d02b2SIan Rogers        "SampleAfterValue": "200003",
264*ff3d02b2SIan Rogers        "UMask": "0x20"
265*ff3d02b2SIan Rogers    },
266*ff3d02b2SIan Rogers    {
267*ff3d02b2SIan Rogers        "BriefDescription": "Counts the number of core cycles when no micro-ops are allocated and the ROB is full",
268*ff3d02b2SIan Rogers        "Counter": "0,1",
269*ff3d02b2SIan Rogers        "EventCode": "0xCA",
270*ff3d02b2SIan Rogers        "EventName": "NO_ALLOC_CYCLES.ROB_FULL",
271*ff3d02b2SIan Rogers        "SampleAfterValue": "200003",
272*ff3d02b2SIan Rogers        "UMask": "0x1"
273*ff3d02b2SIan Rogers    },
274*ff3d02b2SIan Rogers    {
275*ff3d02b2SIan Rogers        "BriefDescription": "Counts any retired load that was pushed into the recycle queue for any reason.",
276*ff3d02b2SIan Rogers        "Counter": "0,1",
27755d42d27SAndi Kleen        "EventCode": "0x03",
27855d42d27SAndi Kleen        "EventName": "RECYCLEQ.ANY_LD",
27955d42d27SAndi Kleen        "SampleAfterValue": "200003",
280*ff3d02b2SIan Rogers        "UMask": "0x40"
28155d42d27SAndi Kleen    },
28255d42d27SAndi Kleen    {
283*ff3d02b2SIan Rogers        "BriefDescription": "Counts any retired store that was pushed into the recycle queue for any reason.",
28455d42d27SAndi Kleen        "Counter": "0,1",
285*ff3d02b2SIan Rogers        "EventCode": "0x03",
28655d42d27SAndi Kleen        "EventName": "RECYCLEQ.ANY_ST",
28755d42d27SAndi Kleen        "SampleAfterValue": "200003",
288*ff3d02b2SIan Rogers        "UMask": "0x80"
28955d42d27SAndi Kleen    },
29055d42d27SAndi Kleen    {
291*ff3d02b2SIan Rogers        "BriefDescription": "Counts the number of occurences a retired load gets blocked because its address overlaps with a store whose data is not ready",
29255d42d27SAndi Kleen        "Counter": "0,1",
293*ff3d02b2SIan Rogers        "EventCode": "0x03",
294*ff3d02b2SIan Rogers        "EventName": "RECYCLEQ.LD_BLOCK_STD_NOTREADY",
29555d42d27SAndi Kleen        "SampleAfterValue": "200003",
296*ff3d02b2SIan Rogers        "UMask": "0x2"
29755d42d27SAndi Kleen    },
29855d42d27SAndi Kleen    {
299*ff3d02b2SIan Rogers        "BriefDescription": "Counts the number of occurences a retired load gets blocked because its address partially overlaps with a store",
30055d42d27SAndi Kleen        "Counter": "0,1",
301*ff3d02b2SIan Rogers        "Data_LA": "1",
302*ff3d02b2SIan Rogers        "EventCode": "0x03",
303*ff3d02b2SIan Rogers        "EventName": "RECYCLEQ.LD_BLOCK_ST_FORWARD",
304*ff3d02b2SIan Rogers        "PEBS": "1",
30555d42d27SAndi Kleen        "SampleAfterValue": "200003",
306*ff3d02b2SIan Rogers        "UMask": "0x1"
30755d42d27SAndi Kleen    },
30855d42d27SAndi Kleen    {
309*ff3d02b2SIan Rogers        "BriefDescription": "Counts the number of occurences a retired load that is a cache line split. Each split should be counted only once.",
31055d42d27SAndi Kleen        "Counter": "0,1",
311*ff3d02b2SIan Rogers        "Data_LA": "1",
312*ff3d02b2SIan Rogers        "EventCode": "0x03",
313*ff3d02b2SIan Rogers        "EventName": "RECYCLEQ.LD_SPLITS",
314*ff3d02b2SIan Rogers        "PEBS": "1",
31555d42d27SAndi Kleen        "SampleAfterValue": "200003",
316*ff3d02b2SIan Rogers        "UMask": "0x8"
317*ff3d02b2SIan Rogers    },
318*ff3d02b2SIan Rogers    {
319*ff3d02b2SIan Rogers        "BriefDescription": "Counts all the retired locked loads. It does not include stores because we would double count if we count stores",
320*ff3d02b2SIan Rogers        "Counter": "0,1",
321*ff3d02b2SIan Rogers        "EventCode": "0x03",
322*ff3d02b2SIan Rogers        "EventName": "RECYCLEQ.LOCK",
323*ff3d02b2SIan Rogers        "SampleAfterValue": "200003",
324*ff3d02b2SIan Rogers        "UMask": "0x10"
325*ff3d02b2SIan Rogers    },
326*ff3d02b2SIan Rogers    {
327*ff3d02b2SIan Rogers        "BriefDescription": "Counts the store micro-ops retired that were pushed in the rehad queue because the store address buffer is full",
328*ff3d02b2SIan Rogers        "Counter": "0,1",
329*ff3d02b2SIan Rogers        "EventCode": "0x03",
330*ff3d02b2SIan Rogers        "EventName": "RECYCLEQ.STA_FULL",
331*ff3d02b2SIan Rogers        "SampleAfterValue": "200003",
332*ff3d02b2SIan Rogers        "UMask": "0x20"
333*ff3d02b2SIan Rogers    },
334*ff3d02b2SIan Rogers    {
335*ff3d02b2SIan Rogers        "BriefDescription": "Counts the number of occurences a retired store that is a cache line split. Each split should be counted only once.",
336*ff3d02b2SIan Rogers        "Counter": "0,1",
337*ff3d02b2SIan Rogers        "EventCode": "0x03",
338*ff3d02b2SIan Rogers        "EventName": "RECYCLEQ.ST_SPLITS",
339*ff3d02b2SIan Rogers        "PublicDescription": "This event counts the number of retired store that experienced a cache line boundary split(Precise Event). Note that each spilt should be counted only once.",
340*ff3d02b2SIan Rogers        "SampleAfterValue": "200003",
341*ff3d02b2SIan Rogers        "UMask": "0x4"
342*ff3d02b2SIan Rogers    },
343*ff3d02b2SIan Rogers    {
344*ff3d02b2SIan Rogers        "BriefDescription": "Counts the total number of core cycles the Alloc pipeline is stalled when any one of the reservation stations is full.",
345*ff3d02b2SIan Rogers        "Counter": "0,1",
346*ff3d02b2SIan Rogers        "EventCode": "0xCB",
347*ff3d02b2SIan Rogers        "EventName": "RS_FULL_STALL.ALL",
348*ff3d02b2SIan Rogers        "SampleAfterValue": "200003",
349*ff3d02b2SIan Rogers        "UMask": "0x1f"
350*ff3d02b2SIan Rogers    },
351*ff3d02b2SIan Rogers    {
352*ff3d02b2SIan Rogers        "BriefDescription": "Counts the number of core cycles when allocation pipeline is stalled and is waiting for a free MEC reservation station entry.",
353*ff3d02b2SIan Rogers        "Counter": "0,1",
354*ff3d02b2SIan Rogers        "EventCode": "0xCB",
355*ff3d02b2SIan Rogers        "EventName": "RS_FULL_STALL.MEC",
356*ff3d02b2SIan Rogers        "SampleAfterValue": "200003",
357*ff3d02b2SIan Rogers        "UMask": "0x1"
358*ff3d02b2SIan Rogers    },
359*ff3d02b2SIan Rogers    {
360*ff3d02b2SIan Rogers        "BriefDescription": "Counts the number of micro-ops retired",
361*ff3d02b2SIan Rogers        "Counter": "0,1",
362*ff3d02b2SIan Rogers        "EventCode": "0xC2",
363*ff3d02b2SIan Rogers        "EventName": "UOPS_RETIRED.ALL",
364*ff3d02b2SIan Rogers        "PublicDescription": "This event counts the number of micro-ops (uops) retired. The processor decodes complex macro instructions into a sequence of simpler uops. Most instructions are composed of one or two uops. Some instructions are decoded into longer sequences such as repeat instructions, floating point transcendental instructions, and assists.",
365*ff3d02b2SIan Rogers        "SampleAfterValue": "2000003",
366*ff3d02b2SIan Rogers        "UMask": "0x10"
367*ff3d02b2SIan Rogers    },
368*ff3d02b2SIan Rogers    {
369*ff3d02b2SIan Rogers        "BriefDescription": "Counts the number of micro-ops retired that are from the complex flows issued by the micro-sequencer (MS).",
370*ff3d02b2SIan Rogers        "Counter": "0,1",
371*ff3d02b2SIan Rogers        "EventCode": "0xC2",
372*ff3d02b2SIan Rogers        "EventName": "UOPS_RETIRED.MS",
373*ff3d02b2SIan Rogers        "PublicDescription": "This event counts the number of micro-ops retired that were supplied from MSROM.",
374*ff3d02b2SIan Rogers        "SampleAfterValue": "2000003",
375*ff3d02b2SIan Rogers        "UMask": "0x1"
37655d42d27SAndi Kleen    }
37755d42d27SAndi Kleen]