xref: /linux/tools/perf/pmu-events/arch/x86/icelakex/pipeline.json (revision a1ff5a7d78a036d6c2178ee5acd6ba4946243800)
1cdb29a8fSJin Yao[
2cdb29a8fSJin Yao    {
3cdb29a8fSJin Yao        "BriefDescription": "Cycles when divide unit is busy executing divide or square root operations.",
4*fab88961SIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
5cdb29a8fSJin Yao        "CounterMask": "1",
6cdb29a8fSJin Yao        "EventCode": "0x14",
7cdb29a8fSJin Yao        "EventName": "ARITH.DIVIDER_ACTIVE",
8cdb29a8fSJin Yao        "PublicDescription": "Counts cycles when divide unit is busy executing divide or square root operations. Accounts for integer and floating-point operations.",
9cdb29a8fSJin Yao        "SampleAfterValue": "1000003",
10cdb29a8fSJin Yao        "UMask": "0x9"
11cdb29a8fSJin Yao    },
12cdb29a8fSJin Yao    {
13cbeee6caSIan Rogers        "BriefDescription": "Number of occurrences where a microcode assist is invoked by hardware.",
14*fab88961SIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
15cbeee6caSIan Rogers        "EventCode": "0xc1",
16cbeee6caSIan Rogers        "EventName": "ASSISTS.ANY",
17cbeee6caSIan 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.",
18cbeee6caSIan Rogers        "SampleAfterValue": "100003",
19cbeee6caSIan Rogers        "UMask": "0x7"
20cbeee6caSIan Rogers    },
21cbeee6caSIan Rogers    {
2209625cffSIan Rogers        "BriefDescription": "All branch instructions retired.",
23*fab88961SIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
2409625cffSIan Rogers        "EventCode": "0xc4",
2509625cffSIan Rogers        "EventName": "BR_INST_RETIRED.ALL_BRANCHES",
2609625cffSIan Rogers        "PEBS": "1",
2709625cffSIan Rogers        "PublicDescription": "Counts all branch instructions retired.",
2809625cffSIan Rogers        "SampleAfterValue": "400009"
29cdb29a8fSJin Yao    },
30cdb29a8fSJin Yao    {
3109625cffSIan Rogers        "BriefDescription": "Conditional branch instructions retired.",
32*fab88961SIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
3309625cffSIan Rogers        "EventCode": "0xc4",
3409625cffSIan Rogers        "EventName": "BR_INST_RETIRED.COND",
3509625cffSIan Rogers        "PEBS": "1",
3609625cffSIan Rogers        "PublicDescription": "Counts conditional branch instructions retired.",
3709625cffSIan Rogers        "SampleAfterValue": "400009",
3809625cffSIan Rogers        "UMask": "0x11"
3909625cffSIan Rogers    },
4009625cffSIan Rogers    {
4109625cffSIan Rogers        "BriefDescription": "Not taken branch instructions retired.",
42*fab88961SIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
4309625cffSIan Rogers        "EventCode": "0xc4",
4409625cffSIan Rogers        "EventName": "BR_INST_RETIRED.COND_NTAKEN",
4509625cffSIan Rogers        "PEBS": "1",
4609625cffSIan Rogers        "PublicDescription": "Counts not taken branch instructions retired.",
4709625cffSIan Rogers        "SampleAfterValue": "400009",
4809625cffSIan Rogers        "UMask": "0x10"
4909625cffSIan Rogers    },
5009625cffSIan Rogers    {
5109625cffSIan Rogers        "BriefDescription": "Taken conditional branch instructions retired.",
52*fab88961SIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
5309625cffSIan Rogers        "EventCode": "0xc4",
5409625cffSIan Rogers        "EventName": "BR_INST_RETIRED.COND_TAKEN",
5509625cffSIan Rogers        "PEBS": "1",
5609625cffSIan Rogers        "PublicDescription": "Counts taken conditional branch instructions retired.",
5709625cffSIan Rogers        "SampleAfterValue": "400009",
58cdb29a8fSJin Yao        "UMask": "0x1"
59cdb29a8fSJin Yao    },
60cdb29a8fSJin Yao    {
6109625cffSIan Rogers        "BriefDescription": "Far branch instructions retired.",
62*fab88961SIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
6309625cffSIan Rogers        "EventCode": "0xc4",
6409625cffSIan Rogers        "EventName": "BR_INST_RETIRED.FAR_BRANCH",
6509625cffSIan Rogers        "PEBS": "1",
6609625cffSIan Rogers        "PublicDescription": "Counts far branch instructions retired.",
6709625cffSIan Rogers        "SampleAfterValue": "100007",
6809625cffSIan Rogers        "UMask": "0x40"
6909625cffSIan Rogers    },
7009625cffSIan Rogers    {
7109625cffSIan Rogers        "BriefDescription": "Indirect near branch instructions retired (excluding returns)",
72*fab88961SIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
7309625cffSIan Rogers        "EventCode": "0xc4",
7409625cffSIan Rogers        "EventName": "BR_INST_RETIRED.INDIRECT",
7509625cffSIan Rogers        "PEBS": "1",
7609625cffSIan Rogers        "PublicDescription": "Counts near indirect branch instructions retired excluding returns. TSX abort is an indirect branch.",
7709625cffSIan Rogers        "SampleAfterValue": "100003",
7809625cffSIan Rogers        "UMask": "0x80"
7909625cffSIan Rogers    },
8009625cffSIan Rogers    {
8109625cffSIan Rogers        "BriefDescription": "Direct and indirect near call instructions retired.",
82*fab88961SIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
8309625cffSIan Rogers        "EventCode": "0xc4",
8409625cffSIan Rogers        "EventName": "BR_INST_RETIRED.NEAR_CALL",
8509625cffSIan Rogers        "PEBS": "1",
8609625cffSIan Rogers        "PublicDescription": "Counts both direct and indirect near call instructions retired.",
8709625cffSIan Rogers        "SampleAfterValue": "100007",
8809625cffSIan Rogers        "UMask": "0x2"
8909625cffSIan Rogers    },
9009625cffSIan Rogers    {
9109625cffSIan Rogers        "BriefDescription": "Return instructions retired.",
92*fab88961SIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
9309625cffSIan Rogers        "EventCode": "0xc4",
9409625cffSIan Rogers        "EventName": "BR_INST_RETIRED.NEAR_RETURN",
9509625cffSIan Rogers        "PEBS": "1",
9609625cffSIan Rogers        "PublicDescription": "Counts return instructions retired.",
9709625cffSIan Rogers        "SampleAfterValue": "100007",
9809625cffSIan Rogers        "UMask": "0x8"
9909625cffSIan Rogers    },
10009625cffSIan Rogers    {
10109625cffSIan Rogers        "BriefDescription": "Taken branch instructions retired.",
102*fab88961SIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
10309625cffSIan Rogers        "EventCode": "0xc4",
10409625cffSIan Rogers        "EventName": "BR_INST_RETIRED.NEAR_TAKEN",
10509625cffSIan Rogers        "PEBS": "1",
10609625cffSIan Rogers        "PublicDescription": "Counts taken branch instructions retired.",
10709625cffSIan Rogers        "SampleAfterValue": "400009",
10809625cffSIan Rogers        "UMask": "0x20"
10909625cffSIan Rogers    },
11009625cffSIan Rogers    {
11109625cffSIan Rogers        "BriefDescription": "All mispredicted branch instructions retired.",
112*fab88961SIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
11309625cffSIan Rogers        "EventCode": "0xc5",
11409625cffSIan Rogers        "EventName": "BR_MISP_RETIRED.ALL_BRANCHES",
11509625cffSIan Rogers        "PEBS": "1",
11609625cffSIan 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.",
11709625cffSIan Rogers        "SampleAfterValue": "50021"
11809625cffSIan Rogers    },
11909625cffSIan Rogers    {
12009625cffSIan Rogers        "BriefDescription": "Mispredicted conditional branch instructions retired.",
121*fab88961SIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
12209625cffSIan Rogers        "EventCode": "0xc5",
12309625cffSIan Rogers        "EventName": "BR_MISP_RETIRED.COND",
12409625cffSIan Rogers        "PEBS": "1",
12509625cffSIan Rogers        "PublicDescription": "Counts mispredicted conditional branch instructions retired.",
12609625cffSIan Rogers        "SampleAfterValue": "50021",
12709625cffSIan Rogers        "UMask": "0x11"
12809625cffSIan Rogers    },
12909625cffSIan Rogers    {
13009625cffSIan Rogers        "BriefDescription": "Mispredicted non-taken conditional branch instructions retired.",
131*fab88961SIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
13209625cffSIan Rogers        "EventCode": "0xc5",
13309625cffSIan Rogers        "EventName": "BR_MISP_RETIRED.COND_NTAKEN",
13409625cffSIan Rogers        "PEBS": "1",
13509625cffSIan Rogers        "PublicDescription": "Counts the number of conditional branch instructions retired that were mispredicted and the branch direction was not taken.",
13609625cffSIan Rogers        "SampleAfterValue": "50021",
13709625cffSIan Rogers        "UMask": "0x10"
13809625cffSIan Rogers    },
13909625cffSIan Rogers    {
140bd035250SIan Rogers        "BriefDescription": "number of branch instructions retired that were mispredicted and taken.",
141*fab88961SIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
14209625cffSIan Rogers        "EventCode": "0xc5",
14309625cffSIan Rogers        "EventName": "BR_MISP_RETIRED.COND_TAKEN",
14409625cffSIan Rogers        "PEBS": "1",
14509625cffSIan Rogers        "PublicDescription": "Counts taken conditional mispredicted branch instructions retired.",
14609625cffSIan Rogers        "SampleAfterValue": "50021",
14709625cffSIan Rogers        "UMask": "0x1"
14809625cffSIan Rogers    },
14909625cffSIan Rogers    {
15009625cffSIan Rogers        "BriefDescription": "All miss-predicted indirect branch instructions retired (excluding RETs. TSX aborts is considered indirect branch).",
151*fab88961SIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
15209625cffSIan Rogers        "EventCode": "0xc5",
15309625cffSIan Rogers        "EventName": "BR_MISP_RETIRED.INDIRECT",
15409625cffSIan Rogers        "PEBS": "1",
15509625cffSIan Rogers        "PublicDescription": "Counts all miss-predicted indirect branch instructions retired (excluding RETs. TSX aborts is considered indirect branch).",
15609625cffSIan Rogers        "SampleAfterValue": "50021",
15709625cffSIan Rogers        "UMask": "0x80"
15809625cffSIan Rogers    },
15909625cffSIan Rogers    {
16009625cffSIan Rogers        "BriefDescription": "Mispredicted indirect CALL instructions retired.",
161*fab88961SIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
16209625cffSIan Rogers        "EventCode": "0xc5",
16309625cffSIan Rogers        "EventName": "BR_MISP_RETIRED.INDIRECT_CALL",
16409625cffSIan Rogers        "PEBS": "1",
16509625cffSIan Rogers        "PublicDescription": "Counts retired mispredicted indirect (near taken) calls, including both register and memory indirect.",
16609625cffSIan Rogers        "SampleAfterValue": "50021",
16709625cffSIan Rogers        "UMask": "0x2"
16809625cffSIan Rogers    },
16909625cffSIan Rogers    {
17009625cffSIan Rogers        "BriefDescription": "Number of near branch instructions retired that were mispredicted and taken.",
171*fab88961SIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
17209625cffSIan Rogers        "EventCode": "0xc5",
17309625cffSIan Rogers        "EventName": "BR_MISP_RETIRED.NEAR_TAKEN",
17409625cffSIan Rogers        "PEBS": "1",
17509625cffSIan Rogers        "PublicDescription": "Counts number of near branch instructions retired that were mispredicted and taken.",
17609625cffSIan Rogers        "SampleAfterValue": "50021",
17709625cffSIan Rogers        "UMask": "0x20"
17809625cffSIan Rogers    },
17909625cffSIan Rogers    {
180d214d0c2SIan Rogers        "BriefDescription": "This event counts the number of mispredicted ret instructions retired. Non PEBS",
181*fab88961SIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
182d214d0c2SIan Rogers        "EventCode": "0xc5",
183d214d0c2SIan Rogers        "EventName": "BR_MISP_RETIRED.RET",
184d214d0c2SIan Rogers        "PEBS": "1",
185d214d0c2SIan Rogers        "PublicDescription": "This is a non-precise version (that is, does not use PEBS) of the event that counts mispredicted return instructions retired.",
186d214d0c2SIan Rogers        "SampleAfterValue": "50021",
187d214d0c2SIan Rogers        "UMask": "0x8"
188d214d0c2SIan Rogers    },
189d214d0c2SIan Rogers    {
19009625cffSIan Rogers        "BriefDescription": "Cycle counts are evenly distributed between active threads in the Core.",
191*fab88961SIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
19209625cffSIan Rogers        "EventCode": "0xec",
19309625cffSIan Rogers        "EventName": "CPU_CLK_UNHALTED.DISTRIBUTED",
19409625cffSIan Rogers        "PublicDescription": "This event distributes cycle counts between active hyperthreads, i.e., those in C0.  A hyperthread becomes inactive when it executes the HLT or MWAIT instructions.  If all other hyperthreads are inactive (or disabled or do not exist), all counts are attributed to this hyperthread. To obtain the full count when the Core is active, sum the counts from each hyperthread.",
19509625cffSIan Rogers        "SampleAfterValue": "2000003",
19609625cffSIan Rogers        "UMask": "0x2"
19709625cffSIan Rogers    },
19809625cffSIan Rogers    {
199cdb29a8fSJin Yao        "BriefDescription": "Core crystal clock cycles when this thread is unhalted and the other thread is halted.",
200*fab88961SIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
201cdb29a8fSJin Yao        "EventCode": "0x3C",
202cdb29a8fSJin Yao        "EventName": "CPU_CLK_UNHALTED.ONE_THREAD_ACTIVE",
203cdb29a8fSJin Yao        "PublicDescription": "Counts Core crystal clock cycles when current thread is unhalted and the other thread is halted.",
204cdb29a8fSJin Yao        "SampleAfterValue": "25003",
205cdb29a8fSJin Yao        "UMask": "0x2"
206cdb29a8fSJin Yao    },
207cdb29a8fSJin Yao    {
208cdb29a8fSJin Yao        "BriefDescription": "Core crystal clock cycles. Cycle counts are evenly distributed between active threads in the Core.",
209*fab88961SIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
210cdb29a8fSJin Yao        "EventCode": "0x3c",
211cdb29a8fSJin Yao        "EventName": "CPU_CLK_UNHALTED.REF_DISTRIBUTED",
212cdb29a8fSJin Yao        "PublicDescription": "This event distributes Core crystal clock cycle counts between active hyperthreads, i.e., those in C0 sleep-state. A hyperthread becomes inactive when it executes the HLT or MWAIT instructions. If one thread is active in a core, all counts are attributed to this hyperthread. To obtain the full count when the Core is active, sum the counts from each hyperthread.",
213cdb29a8fSJin Yao        "SampleAfterValue": "2000003",
214cdb29a8fSJin Yao        "UMask": "0x8"
215cdb29a8fSJin Yao    },
216cdb29a8fSJin Yao    {
21709625cffSIan Rogers        "BriefDescription": "Reference cycles when the core is not in halt state.",
218*fab88961SIan Rogers        "Counter": "Fixed counter 2",
21909625cffSIan Rogers        "EventName": "CPU_CLK_UNHALTED.REF_TSC",
22009625cffSIan 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.",
22109625cffSIan Rogers        "SampleAfterValue": "2000003",
22209625cffSIan Rogers        "UMask": "0x3"
22309625cffSIan Rogers    },
22409625cffSIan Rogers    {
22509625cffSIan Rogers        "BriefDescription": "Core crystal clock cycles when the thread is unhalted.",
226*fab88961SIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
22709625cffSIan Rogers        "EventCode": "0x3C",
22809625cffSIan Rogers        "EventName": "CPU_CLK_UNHALTED.REF_XCLK",
22909625cffSIan Rogers        "PublicDescription": "Counts core crystal clock cycles when the thread is unhalted.",
23009625cffSIan Rogers        "SampleAfterValue": "25003",
23109625cffSIan Rogers        "UMask": "0x1"
23209625cffSIan Rogers    },
23309625cffSIan Rogers    {
23409625cffSIan Rogers        "BriefDescription": "Core cycles when the thread is not in halt state",
235*fab88961SIan Rogers        "Counter": "Fixed counter 1",
23609625cffSIan Rogers        "EventName": "CPU_CLK_UNHALTED.THREAD",
23709625cffSIan 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.",
23809625cffSIan Rogers        "SampleAfterValue": "2000003",
23909625cffSIan Rogers        "UMask": "0x2"
24009625cffSIan Rogers    },
24109625cffSIan Rogers    {
24209625cffSIan Rogers        "BriefDescription": "Thread cycles when thread is not in halt state",
243*fab88961SIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
24409625cffSIan Rogers        "EventCode": "0x3C",
24509625cffSIan Rogers        "EventName": "CPU_CLK_UNHALTED.THREAD_P",
24609625cffSIan Rogers        "PublicDescription": "This is an architectural event that counts the number of thread cycles while the thread is not in a halt state. The thread enters the halt state when it is running the HLT instruction. The core frequency may change from time to time due to power or thermal throttling. For this reason, this event may have a changing ratio with regards to wall clock time.",
247f8e23ad1SIan Rogers        "SampleAfterValue": "2000003"
24809625cffSIan Rogers    },
24909625cffSIan Rogers    {
25009625cffSIan Rogers        "BriefDescription": "Cycles while L1 cache miss demand load is outstanding.",
251*fab88961SIan Rogers        "Counter": "0,1,2,3",
25209625cffSIan Rogers        "CounterMask": "8",
25309625cffSIan Rogers        "EventCode": "0xA3",
25409625cffSIan Rogers        "EventName": "CYCLE_ACTIVITY.CYCLES_L1D_MISS",
25509625cffSIan Rogers        "SampleAfterValue": "1000003",
25609625cffSIan Rogers        "UMask": "0x8"
25709625cffSIan Rogers    },
25809625cffSIan Rogers    {
25909625cffSIan Rogers        "BriefDescription": "Cycles while L2 cache miss demand load is outstanding.",
260*fab88961SIan Rogers        "Counter": "0,1,2,3",
26109625cffSIan Rogers        "CounterMask": "1",
26209625cffSIan Rogers        "EventCode": "0xA3",
26309625cffSIan Rogers        "EventName": "CYCLE_ACTIVITY.CYCLES_L2_MISS",
26409625cffSIan Rogers        "SampleAfterValue": "1000003",
26509625cffSIan Rogers        "UMask": "0x1"
26609625cffSIan Rogers    },
26709625cffSIan Rogers    {
26809625cffSIan Rogers        "BriefDescription": "Cycles while memory subsystem has an outstanding load.",
269*fab88961SIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
27009625cffSIan Rogers        "CounterMask": "16",
27109625cffSIan Rogers        "EventCode": "0xA3",
27209625cffSIan Rogers        "EventName": "CYCLE_ACTIVITY.CYCLES_MEM_ANY",
27309625cffSIan Rogers        "SampleAfterValue": "1000003",
27409625cffSIan Rogers        "UMask": "0x10"
27509625cffSIan Rogers    },
27609625cffSIan Rogers    {
27709625cffSIan Rogers        "BriefDescription": "Execution stalls while L1 cache miss demand load is outstanding.",
278*fab88961SIan Rogers        "Counter": "0,1,2,3",
27909625cffSIan Rogers        "CounterMask": "12",
28009625cffSIan Rogers        "EventCode": "0xA3",
28109625cffSIan Rogers        "EventName": "CYCLE_ACTIVITY.STALLS_L1D_MISS",
28209625cffSIan Rogers        "SampleAfterValue": "1000003",
28309625cffSIan Rogers        "UMask": "0xc"
28409625cffSIan Rogers    },
28509625cffSIan Rogers    {
28609625cffSIan Rogers        "BriefDescription": "Execution stalls while L2 cache miss demand load is outstanding.",
287*fab88961SIan Rogers        "Counter": "0,1,2,3",
28809625cffSIan Rogers        "CounterMask": "5",
28909625cffSIan Rogers        "EventCode": "0xa3",
29009625cffSIan Rogers        "EventName": "CYCLE_ACTIVITY.STALLS_L2_MISS",
29109625cffSIan Rogers        "SampleAfterValue": "1000003",
29209625cffSIan Rogers        "UMask": "0x5"
29309625cffSIan Rogers    },
29409625cffSIan Rogers    {
29509625cffSIan Rogers        "BriefDescription": "Execution stalls while memory subsystem has an outstanding load.",
296*fab88961SIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
29709625cffSIan Rogers        "CounterMask": "20",
29809625cffSIan Rogers        "EventCode": "0xa3",
29909625cffSIan Rogers        "EventName": "CYCLE_ACTIVITY.STALLS_MEM_ANY",
30009625cffSIan Rogers        "SampleAfterValue": "1000003",
30109625cffSIan Rogers        "UMask": "0x14"
30209625cffSIan Rogers    },
30309625cffSIan Rogers    {
30409625cffSIan Rogers        "BriefDescription": "Total execution stalls.",
305*fab88961SIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
30609625cffSIan Rogers        "CounterMask": "4",
30709625cffSIan Rogers        "EventCode": "0xa3",
30809625cffSIan Rogers        "EventName": "CYCLE_ACTIVITY.STALLS_TOTAL",
30909625cffSIan Rogers        "SampleAfterValue": "1000003",
31009625cffSIan Rogers        "UMask": "0x4"
31109625cffSIan Rogers    },
31209625cffSIan Rogers    {
31309625cffSIan Rogers        "BriefDescription": "Cycles total of 1 uop is executed on all ports and Reservation Station was not empty.",
314*fab88961SIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
31509625cffSIan Rogers        "EventCode": "0xa6",
31609625cffSIan Rogers        "EventName": "EXE_ACTIVITY.1_PORTS_UTIL",
31709625cffSIan Rogers        "PublicDescription": "Counts cycles during which a total of 1 uop was executed on all ports and Reservation Station (RS) was not empty.",
31809625cffSIan Rogers        "SampleAfterValue": "2000003",
31909625cffSIan Rogers        "UMask": "0x2"
32009625cffSIan Rogers    },
32109625cffSIan Rogers    {
32209625cffSIan Rogers        "BriefDescription": "Cycles total of 2 uops are executed on all ports and Reservation Station was not empty.",
323*fab88961SIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
32409625cffSIan Rogers        "EventCode": "0xa6",
32509625cffSIan Rogers        "EventName": "EXE_ACTIVITY.2_PORTS_UTIL",
32609625cffSIan Rogers        "PublicDescription": "Counts cycles during which a total of 2 uops were executed on all ports and Reservation Station (RS) was not empty.",
32709625cffSIan Rogers        "SampleAfterValue": "2000003",
32809625cffSIan Rogers        "UMask": "0x4"
32909625cffSIan Rogers    },
33009625cffSIan Rogers    {
33109625cffSIan Rogers        "BriefDescription": "Cycles total of 3 uops are executed on all ports and Reservation Station was not empty.",
332*fab88961SIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
33309625cffSIan Rogers        "EventCode": "0xa6",
33409625cffSIan Rogers        "EventName": "EXE_ACTIVITY.3_PORTS_UTIL",
33509625cffSIan Rogers        "PublicDescription": "Cycles total of 3 uops are executed on all ports and Reservation Station (RS) was not empty.",
33609625cffSIan Rogers        "SampleAfterValue": "2000003",
33709625cffSIan Rogers        "UMask": "0x8"
33809625cffSIan Rogers    },
33909625cffSIan Rogers    {
34009625cffSIan Rogers        "BriefDescription": "Cycles total of 4 uops are executed on all ports and Reservation Station was not empty.",
341*fab88961SIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
34209625cffSIan Rogers        "EventCode": "0xa6",
34309625cffSIan Rogers        "EventName": "EXE_ACTIVITY.4_PORTS_UTIL",
34409625cffSIan Rogers        "PublicDescription": "Cycles total of 4 uops are executed on all ports and Reservation Station (RS) was not empty.",
34509625cffSIan Rogers        "SampleAfterValue": "2000003",
34609625cffSIan Rogers        "UMask": "0x10"
34709625cffSIan Rogers    },
34809625cffSIan Rogers    {
34909625cffSIan Rogers        "BriefDescription": "Cycles where the Store Buffer was full and no loads caused an execution stall.",
350*fab88961SIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
35109625cffSIan Rogers        "CounterMask": "2",
35209625cffSIan Rogers        "EventCode": "0xA6",
35309625cffSIan Rogers        "EventName": "EXE_ACTIVITY.BOUND_ON_STORES",
35409625cffSIan Rogers        "PublicDescription": "Counts cycles where the Store Buffer was full and no loads caused an execution stall.",
35509625cffSIan Rogers        "SampleAfterValue": "1000003",
35609625cffSIan Rogers        "UMask": "0x40"
35709625cffSIan Rogers    },
35809625cffSIan Rogers    {
359663655c9SIan Rogers        "BriefDescription": "Stalls caused by changing prefix length of the instruction. [This event is alias to DECODE.LCP]",
360*fab88961SIan Rogers        "Counter": "0,1,2,3",
36109625cffSIan Rogers        "EventCode": "0x87",
36209625cffSIan Rogers        "EventName": "ILD_STALL.LCP",
363663655c9SIan 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]",
36409625cffSIan Rogers        "SampleAfterValue": "500009",
36509625cffSIan Rogers        "UMask": "0x1"
36609625cffSIan Rogers    },
36709625cffSIan Rogers    {
36809625cffSIan Rogers        "BriefDescription": "Instruction decoders utilized in a cycle",
369*fab88961SIan Rogers        "Counter": "0,1,2,3",
37009625cffSIan Rogers        "EventCode": "0x55",
37109625cffSIan Rogers        "EventName": "INST_DECODED.DECODERS",
37209625cffSIan Rogers        "PublicDescription": "Number of decoders utilized in a cycle when the MITE (legacy decode pipeline) fetches instructions.",
37309625cffSIan Rogers        "SampleAfterValue": "2000003",
37409625cffSIan Rogers        "UMask": "0x1"
37509625cffSIan Rogers    },
37609625cffSIan Rogers    {
37709625cffSIan Rogers        "BriefDescription": "Number of instructions retired. Fixed Counter - architectural event",
378*fab88961SIan Rogers        "Counter": "Fixed counter 0",
37909625cffSIan Rogers        "EventName": "INST_RETIRED.ANY",
38009625cffSIan Rogers        "PEBS": "1",
38109625cffSIan 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.",
38209625cffSIan Rogers        "SampleAfterValue": "2000003",
38309625cffSIan Rogers        "UMask": "0x1"
38409625cffSIan Rogers    },
38509625cffSIan Rogers    {
38609625cffSIan Rogers        "BriefDescription": "Number of instructions retired. General Counter - architectural event",
387*fab88961SIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
38809625cffSIan Rogers        "EventCode": "0xc0",
38909625cffSIan Rogers        "EventName": "INST_RETIRED.ANY_P",
39009625cffSIan Rogers        "PEBS": "1",
39109625cffSIan 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.",
39209625cffSIan Rogers        "SampleAfterValue": "2000003"
39309625cffSIan Rogers    },
39409625cffSIan Rogers    {
39509625cffSIan Rogers        "BriefDescription": "Number of all retired NOP instructions.",
396*fab88961SIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
39709625cffSIan Rogers        "EventCode": "0xc0",
39809625cffSIan Rogers        "EventName": "INST_RETIRED.NOP",
39909625cffSIan Rogers        "PEBS": "1",
40009625cffSIan Rogers        "SampleAfterValue": "2000003",
40109625cffSIan Rogers        "UMask": "0x2"
40209625cffSIan Rogers    },
40309625cffSIan Rogers    {
40409625cffSIan Rogers        "BriefDescription": "Precise instruction retired event with a reduced effect of PEBS shadow in IP distribution",
405*fab88961SIan Rogers        "Counter": "Fixed counter 0",
40609625cffSIan Rogers        "EventName": "INST_RETIRED.PREC_DIST",
40709625cffSIan Rogers        "PEBS": "1",
40809625cffSIan 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.",
40909625cffSIan Rogers        "SampleAfterValue": "2000003",
41009625cffSIan Rogers        "UMask": "0x1"
41109625cffSIan Rogers    },
41209625cffSIan Rogers    {
41309625cffSIan Rogers        "BriefDescription": "Cycles the Backend cluster is recovering after a miss-speculation or a Store Buffer or Load Buffer drain stall.",
414*fab88961SIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
41509625cffSIan Rogers        "CounterMask": "1",
41609625cffSIan Rogers        "EventCode": "0x0D",
41709625cffSIan Rogers        "EventName": "INT_MISC.ALL_RECOVERY_CYCLES",
41809625cffSIan Rogers        "PublicDescription": "Counts cycles the Backend cluster is recovering after a miss-speculation or a Store Buffer or Load Buffer drain stall.",
41909625cffSIan Rogers        "SampleAfterValue": "2000003",
42009625cffSIan Rogers        "UMask": "0x3"
42109625cffSIan Rogers    },
42209625cffSIan Rogers    {
4230ec73817SIan Rogers        "BriefDescription": "Clears speculative count",
424*fab88961SIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
4250ec73817SIan Rogers        "CounterMask": "1",
4260ec73817SIan Rogers        "EdgeDetect": "1",
4270ec73817SIan Rogers        "EventCode": "0x0D",
4280ec73817SIan Rogers        "EventName": "INT_MISC.CLEARS_COUNT",
4290ec73817SIan Rogers        "PublicDescription": "Counts the number of speculative clears due to any type of branch misprediction or machine clears",
4300ec73817SIan Rogers        "SampleAfterValue": "500009",
4310ec73817SIan Rogers        "UMask": "0x1"
4320ec73817SIan Rogers    },
4330ec73817SIan Rogers    {
43409625cffSIan Rogers        "BriefDescription": "Counts cycles after recovery from a branch misprediction or machine clear till the first uop is issued from the resteered path.",
435*fab88961SIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
43609625cffSIan Rogers        "EventCode": "0x0d",
43709625cffSIan Rogers        "EventName": "INT_MISC.CLEAR_RESTEER_CYCLES",
43809625cffSIan Rogers        "PublicDescription": "Cycles after recovery from a branch misprediction or machine clear till the first uop is issued from the resteered path.",
43909625cffSIan Rogers        "SampleAfterValue": "500009",
44009625cffSIan Rogers        "UMask": "0x80"
44109625cffSIan Rogers    },
44209625cffSIan Rogers    {
44309625cffSIan Rogers        "BriefDescription": "Core cycles the allocator was stalled due to recovery from earlier clear event for this thread",
444*fab88961SIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
44509625cffSIan Rogers        "EventCode": "0x0D",
44609625cffSIan Rogers        "EventName": "INT_MISC.RECOVERY_CYCLES",
44709625cffSIan Rogers        "PublicDescription": "Counts core cycles when the Resource allocator was stalled due to recovery from an earlier branch misprediction or machine clear event.",
44809625cffSIan Rogers        "SampleAfterValue": "500009",
44909625cffSIan Rogers        "UMask": "0x1"
45009625cffSIan Rogers    },
45109625cffSIan Rogers    {
45209625cffSIan Rogers        "BriefDescription": "TMA slots where uops got dropped",
453*fab88961SIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
45409625cffSIan Rogers        "EventCode": "0x0d",
45509625cffSIan Rogers        "EventName": "INT_MISC.UOP_DROPPING",
45609625cffSIan Rogers        "PublicDescription": "Estimated number of Top-down Microarchitecture Analysis slots that got dropped due to non front-end reasons",
45709625cffSIan Rogers        "SampleAfterValue": "1000003",
45809625cffSIan Rogers        "UMask": "0x10"
45909625cffSIan Rogers    },
46009625cffSIan Rogers    {
46109625cffSIan Rogers        "BriefDescription": "The number of times that split load operations are temporarily blocked because all resources for handling the split accesses are in use.",
462*fab88961SIan Rogers        "Counter": "0,1,2,3",
46309625cffSIan Rogers        "EventCode": "0x03",
46409625cffSIan Rogers        "EventName": "LD_BLOCKS.NO_SR",
46509625cffSIan 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.",
46609625cffSIan Rogers        "SampleAfterValue": "100003",
46709625cffSIan Rogers        "UMask": "0x8"
46809625cffSIan Rogers    },
46909625cffSIan Rogers    {
47009625cffSIan Rogers        "BriefDescription": "Loads blocked due to overlapping with a preceding store that cannot be forwarded.",
471*fab88961SIan Rogers        "Counter": "0,1,2,3",
47209625cffSIan Rogers        "EventCode": "0x03",
47309625cffSIan Rogers        "EventName": "LD_BLOCKS.STORE_FORWARD",
47409625cffSIan 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.",
47509625cffSIan Rogers        "SampleAfterValue": "100003",
47609625cffSIan Rogers        "UMask": "0x2"
47709625cffSIan Rogers    },
47809625cffSIan Rogers    {
47909625cffSIan Rogers        "BriefDescription": "False dependencies due to partial compare on address.",
480*fab88961SIan Rogers        "Counter": "0,1,2,3",
48109625cffSIan Rogers        "EventCode": "0x07",
48209625cffSIan Rogers        "EventName": "LD_BLOCKS_PARTIAL.ADDRESS_ALIAS",
48309625cffSIan Rogers        "PublicDescription": "Counts the number of times a load got blocked due to false dependencies due to partial compare on address.",
48409625cffSIan Rogers        "SampleAfterValue": "100003",
48509625cffSIan Rogers        "UMask": "0x1"
48609625cffSIan Rogers    },
48709625cffSIan Rogers    {
488cdb29a8fSJin Yao        "BriefDescription": "Counts the number of demand load dispatches that hit L1D fill buffer (FB) allocated for software prefetch.",
489*fab88961SIan Rogers        "Counter": "0,1,2,3",
490cdb29a8fSJin Yao        "EventCode": "0x4c",
491cdb29a8fSJin Yao        "EventName": "LOAD_HIT_PREFETCH.SWPF",
492cdb29a8fSJin Yao        "PublicDescription": "Counts all not software-prefetch load dispatches that hit the fill buffer (FB) allocated for the software prefetch. It can also be incremented by some lock instructions. So it should only be used with profiling so that the locks can be excluded by ASM (Assembly File) inspection of the nearby instructions.",
493cdb29a8fSJin Yao        "SampleAfterValue": "100003",
494cdb29a8fSJin Yao        "UMask": "0x1"
495cdb29a8fSJin Yao    },
496cdb29a8fSJin Yao    {
49709625cffSIan Rogers        "BriefDescription": "Cycles Uops delivered by the LSD, but didn't come from the decoder.",
498*fab88961SIan Rogers        "Counter": "0,1,2,3",
49909625cffSIan Rogers        "CounterMask": "1",
50009625cffSIan Rogers        "EventCode": "0xA8",
50109625cffSIan Rogers        "EventName": "LSD.CYCLES_ACTIVE",
50209625cffSIan Rogers        "PublicDescription": "Counts the cycles when at least one uop is delivered by the LSD (Loop-stream detector).",
50309625cffSIan Rogers        "SampleAfterValue": "2000003",
50409625cffSIan Rogers        "UMask": "0x1"
50509625cffSIan Rogers    },
50609625cffSIan Rogers    {
50709625cffSIan Rogers        "BriefDescription": "Cycles optimal number of Uops delivered by the LSD, but did not come from the decoder.",
508*fab88961SIan Rogers        "Counter": "0,1,2,3",
50909625cffSIan Rogers        "CounterMask": "5",
51009625cffSIan Rogers        "EventCode": "0xa8",
51109625cffSIan Rogers        "EventName": "LSD.CYCLES_OK",
51209625cffSIan Rogers        "PublicDescription": "Counts the cycles when optimal number of uops is delivered by the LSD (Loop-stream detector).",
51309625cffSIan Rogers        "SampleAfterValue": "2000003",
51409625cffSIan Rogers        "UMask": "0x1"
51509625cffSIan Rogers    },
51609625cffSIan Rogers    {
51709625cffSIan Rogers        "BriefDescription": "Number of Uops delivered by the LSD.",
518*fab88961SIan Rogers        "Counter": "0,1,2,3",
51909625cffSIan Rogers        "EventCode": "0xa8",
52009625cffSIan Rogers        "EventName": "LSD.UOPS",
52109625cffSIan Rogers        "PublicDescription": "Counts the number of uops delivered to the back-end by the LSD(Loop Stream Detector).",
52209625cffSIan Rogers        "SampleAfterValue": "2000003",
52309625cffSIan Rogers        "UMask": "0x1"
52409625cffSIan Rogers    },
52509625cffSIan Rogers    {
52609625cffSIan Rogers        "BriefDescription": "Number of machine clears (nukes) of any type.",
527*fab88961SIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
52809625cffSIan Rogers        "CounterMask": "1",
52909625cffSIan Rogers        "EdgeDetect": "1",
53009625cffSIan Rogers        "EventCode": "0xc3",
53109625cffSIan Rogers        "EventName": "MACHINE_CLEARS.COUNT",
53209625cffSIan Rogers        "PublicDescription": "Counts the number of machine clears (nukes) of any type.",
53309625cffSIan Rogers        "SampleAfterValue": "100003",
53409625cffSIan Rogers        "UMask": "0x1"
53509625cffSIan Rogers    },
53609625cffSIan Rogers    {
53709625cffSIan Rogers        "BriefDescription": "Self-modifying code (SMC) detected.",
538*fab88961SIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
53909625cffSIan Rogers        "EventCode": "0xc3",
54009625cffSIan Rogers        "EventName": "MACHINE_CLEARS.SMC",
54109625cffSIan Rogers        "PublicDescription": "Counts self-modifying code (SMC) detected, which causes a machine clear.",
54209625cffSIan Rogers        "SampleAfterValue": "100003",
54309625cffSIan Rogers        "UMask": "0x4"
54409625cffSIan Rogers    },
54509625cffSIan Rogers    {
54609625cffSIan Rogers        "BriefDescription": "Increments whenever there is an update to the LBR array.",
547*fab88961SIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
54809625cffSIan Rogers        "EventCode": "0xcc",
54909625cffSIan Rogers        "EventName": "MISC_RETIRED.LBR_INSERTS",
55009625cffSIan 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.",
55109625cffSIan Rogers        "SampleAfterValue": "100003",
55209625cffSIan Rogers        "UMask": "0x20"
55309625cffSIan Rogers    },
55409625cffSIan Rogers    {
55509625cffSIan Rogers        "BriefDescription": "Number of retired PAUSE instructions. This event is not supported on first SKL and KBL products.",
556*fab88961SIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
55709625cffSIan Rogers        "EventCode": "0xcc",
55809625cffSIan Rogers        "EventName": "MISC_RETIRED.PAUSE_INST",
55909625cffSIan Rogers        "PublicDescription": "Counts number of retired PAUSE instructions. This event is not supported on first SKL and KBL products.",
56009625cffSIan Rogers        "SampleAfterValue": "100003",
56109625cffSIan Rogers        "UMask": "0x40"
56209625cffSIan Rogers    },
56309625cffSIan Rogers    {
56409625cffSIan Rogers        "BriefDescription": "Cycles stalled due to no store buffers available. (not including draining form sync).",
565*fab88961SIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
56609625cffSIan Rogers        "EventCode": "0xa2",
56709625cffSIan Rogers        "EventName": "RESOURCE_STALLS.SB",
56809625cffSIan 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.",
56909625cffSIan Rogers        "SampleAfterValue": "100003",
57009625cffSIan Rogers        "UMask": "0x8"
57109625cffSIan Rogers    },
57209625cffSIan Rogers    {
57309625cffSIan Rogers        "BriefDescription": "Counts cycles where the pipeline is stalled due to serializing operations.",
574*fab88961SIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
57509625cffSIan Rogers        "EventCode": "0xa2",
57609625cffSIan Rogers        "EventName": "RESOURCE_STALLS.SCOREBOARD",
57709625cffSIan Rogers        "SampleAfterValue": "100003",
57809625cffSIan Rogers        "UMask": "0x2"
57909625cffSIan Rogers    },
58009625cffSIan Rogers    {
581cdb29a8fSJin Yao        "BriefDescription": "Cycles when Reservation Station (RS) is empty for the thread",
582*fab88961SIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
583cdb29a8fSJin Yao        "EventCode": "0x5e",
584cdb29a8fSJin Yao        "EventName": "RS_EVENTS.EMPTY_CYCLES",
58585505068SIan 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 starvation periods (e.g. branch mispredictions or i-cache misses)",
586cdb29a8fSJin Yao        "SampleAfterValue": "1000003",
587cdb29a8fSJin Yao        "UMask": "0x1"
588cdb29a8fSJin Yao    },
589cdb29a8fSJin Yao    {
590cdb29a8fSJin Yao        "BriefDescription": "Counts end of periods where the Reservation Station (RS) was empty.",
591*fab88961SIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
592cdb29a8fSJin Yao        "CounterMask": "1",
593cdb29a8fSJin Yao        "EdgeDetect": "1",
594cdb29a8fSJin Yao        "EventCode": "0x5E",
595cdb29a8fSJin Yao        "EventName": "RS_EVENTS.EMPTY_END",
596cdb29a8fSJin Yao        "Invert": "1",
597cdb29a8fSJin Yao        "PublicDescription": "Counts end of periods where the Reservation Station (RS) was empty. Could be useful to closely sample on front-end latency issues (see the FRONTEND_RETIRED event of designated precise events)",
598cdb29a8fSJin Yao        "SampleAfterValue": "100003",
599cdb29a8fSJin Yao        "UMask": "0x1"
600cdb29a8fSJin Yao    },
601cdb29a8fSJin Yao    {
602f25db21bSIan Rogers        "BriefDescription": "TMA slots where no uops were being issued due to lack of back-end resources.",
603*fab88961SIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
604f25db21bSIan Rogers        "EventCode": "0xa4",
605f25db21bSIan Rogers        "EventName": "TOPDOWN.BACKEND_BOUND_SLOTS",
606f25db21bSIan 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.",
607f25db21bSIan Rogers        "SampleAfterValue": "10000003",
608f25db21bSIan Rogers        "UMask": "0x2"
609f25db21bSIan Rogers    },
610f25db21bSIan Rogers    {
611f25db21bSIan Rogers        "BriefDescription": "TMA slots available for an unhalted logical processor. Fixed counter - architectural event",
612*fab88961SIan Rogers        "Counter": "Fixed counter 3",
613f25db21bSIan Rogers        "EventName": "TOPDOWN.SLOTS",
614f25db21bSIan 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).",
615f25db21bSIan Rogers        "SampleAfterValue": "10000003",
616f25db21bSIan Rogers        "UMask": "0x4"
617f25db21bSIan Rogers    },
618f25db21bSIan Rogers    {
619f25db21bSIan Rogers        "BriefDescription": "TMA slots available for an unhalted logical processor. General counter - architectural event",
620*fab88961SIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
621f25db21bSIan Rogers        "EventCode": "0xa4",
622f25db21bSIan Rogers        "EventName": "TOPDOWN.SLOTS_P",
623f25db21bSIan 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.",
624f25db21bSIan Rogers        "SampleAfterValue": "10000003",
625f25db21bSIan Rogers        "UMask": "0x1"
626f25db21bSIan Rogers    },
627f25db21bSIan Rogers    {
62809625cffSIan Rogers        "BriefDescription": "Number of uops decoded out of instructions exclusively fetched by decoder 0",
629*fab88961SIan Rogers        "Counter": "0,1,2,3",
63009625cffSIan Rogers        "EventCode": "0x56",
63109625cffSIan Rogers        "EventName": "UOPS_DECODED.DEC0",
63209625cffSIan Rogers        "PublicDescription": "Uops exclusively fetched by decoder 0",
63309625cffSIan Rogers        "SampleAfterValue": "1000003",
634cdb29a8fSJin Yao        "UMask": "0x1"
635cdb29a8fSJin Yao    },
636cdb29a8fSJin Yao    {
637cdb29a8fSJin Yao        "BriefDescription": "Number of uops executed on port 0",
638*fab88961SIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
639cdb29a8fSJin Yao        "EventCode": "0xa1",
640cdb29a8fSJin Yao        "EventName": "UOPS_DISPATCHED.PORT_0",
641cdb29a8fSJin Yao        "PublicDescription": "Counts, on the per-thread basis, cycles during which at least one uop is dispatched from the Reservation Station (RS) to port 0.",
642cdb29a8fSJin Yao        "SampleAfterValue": "2000003",
643cdb29a8fSJin Yao        "UMask": "0x1"
644cdb29a8fSJin Yao    },
645cdb29a8fSJin Yao    {
646cdb29a8fSJin Yao        "BriefDescription": "Number of uops executed on port 1",
647*fab88961SIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
648cdb29a8fSJin Yao        "EventCode": "0xa1",
649cdb29a8fSJin Yao        "EventName": "UOPS_DISPATCHED.PORT_1",
650cdb29a8fSJin Yao        "PublicDescription": "Counts, on the per-thread basis, cycles during which at least one uop is dispatched from the Reservation Station (RS) to port 1.",
651cdb29a8fSJin Yao        "SampleAfterValue": "2000003",
652cdb29a8fSJin Yao        "UMask": "0x2"
653cdb29a8fSJin Yao    },
654cdb29a8fSJin Yao    {
655cdb29a8fSJin Yao        "BriefDescription": "Number of uops executed on port 2 and 3",
656*fab88961SIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
657cdb29a8fSJin Yao        "EventCode": "0xa1",
658cdb29a8fSJin Yao        "EventName": "UOPS_DISPATCHED.PORT_2_3",
659cdb29a8fSJin Yao        "PublicDescription": "Counts, on the per-thread basis, cycles during which at least one uop is dispatched from the Reservation Station (RS) to ports 2 and 3.",
660cdb29a8fSJin Yao        "SampleAfterValue": "2000003",
661cdb29a8fSJin Yao        "UMask": "0x4"
662cdb29a8fSJin Yao    },
663cdb29a8fSJin Yao    {
664cdb29a8fSJin Yao        "BriefDescription": "Number of uops executed on port 4 and 9",
665*fab88961SIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
666cdb29a8fSJin Yao        "EventCode": "0xa1",
667cdb29a8fSJin Yao        "EventName": "UOPS_DISPATCHED.PORT_4_9",
668cdb29a8fSJin Yao        "PublicDescription": "Counts, on the per-thread basis, cycles during which at least one uop is dispatched from the Reservation Station (RS) to ports 5 and 9.",
669cdb29a8fSJin Yao        "SampleAfterValue": "2000003",
670cdb29a8fSJin Yao        "UMask": "0x10"
671cdb29a8fSJin Yao    },
672cdb29a8fSJin Yao    {
673cdb29a8fSJin Yao        "BriefDescription": "Number of uops executed on port 5",
674*fab88961SIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
675cdb29a8fSJin Yao        "EventCode": "0xa1",
676cdb29a8fSJin Yao        "EventName": "UOPS_DISPATCHED.PORT_5",
677cdb29a8fSJin Yao        "PublicDescription": "Counts, on the per-thread basis, cycles during which at least one uop is dispatched from the Reservation Station (RS) to port 5.",
678cdb29a8fSJin Yao        "SampleAfterValue": "2000003",
679cdb29a8fSJin Yao        "UMask": "0x20"
680cdb29a8fSJin Yao    },
681cdb29a8fSJin Yao    {
682cdb29a8fSJin Yao        "BriefDescription": "Number of uops executed on port 6",
683*fab88961SIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
684cdb29a8fSJin Yao        "EventCode": "0xa1",
685cdb29a8fSJin Yao        "EventName": "UOPS_DISPATCHED.PORT_6",
686cdb29a8fSJin Yao        "PublicDescription": "Counts, on the per-thread basis, cycles during which at least one uop is dispatched from the Reservation Station (RS) to port 6.",
687cdb29a8fSJin Yao        "SampleAfterValue": "2000003",
688cdb29a8fSJin Yao        "UMask": "0x40"
689cdb29a8fSJin Yao    },
690cdb29a8fSJin Yao    {
691cdb29a8fSJin Yao        "BriefDescription": "Number of uops executed on port 7 and 8",
692*fab88961SIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
693cdb29a8fSJin Yao        "EventCode": "0xa1",
694cdb29a8fSJin Yao        "EventName": "UOPS_DISPATCHED.PORT_7_8",
695cdb29a8fSJin Yao        "PublicDescription": "Counts, on the per-thread basis, cycles during which at least one uop is dispatched from the Reservation Station (RS) to ports 7 and 8.",
696cdb29a8fSJin Yao        "SampleAfterValue": "2000003",
697cdb29a8fSJin Yao        "UMask": "0x80"
698cdb29a8fSJin Yao    },
699cdb29a8fSJin Yao    {
70009625cffSIan Rogers        "BriefDescription": "Cycles at least 1 micro-op is executed from any thread on physical core.",
701*fab88961SIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
702cdb29a8fSJin Yao        "CounterMask": "1",
703cdb29a8fSJin Yao        "EventCode": "0xB1",
70409625cffSIan Rogers        "EventName": "UOPS_EXECUTED.CORE_CYCLES_GE_1",
70509625cffSIan Rogers        "PublicDescription": "Counts cycles when at least 1 micro-op is executed from any thread on physical core.",
706cdb29a8fSJin Yao        "SampleAfterValue": "2000003",
70709625cffSIan Rogers        "UMask": "0x2"
70809625cffSIan Rogers    },
70909625cffSIan Rogers    {
71009625cffSIan Rogers        "BriefDescription": "Cycles at least 2 micro-op is executed from any thread on physical core.",
711*fab88961SIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
71209625cffSIan Rogers        "CounterMask": "2",
71309625cffSIan Rogers        "EventCode": "0xB1",
71409625cffSIan Rogers        "EventName": "UOPS_EXECUTED.CORE_CYCLES_GE_2",
71509625cffSIan Rogers        "PublicDescription": "Counts cycles when at least 2 micro-ops are executed from any thread on physical core.",
71609625cffSIan Rogers        "SampleAfterValue": "2000003",
71709625cffSIan Rogers        "UMask": "0x2"
71809625cffSIan Rogers    },
71909625cffSIan Rogers    {
72009625cffSIan Rogers        "BriefDescription": "Cycles at least 3 micro-op is executed from any thread on physical core.",
721*fab88961SIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
72209625cffSIan Rogers        "CounterMask": "3",
72309625cffSIan Rogers        "EventCode": "0xB1",
72409625cffSIan Rogers        "EventName": "UOPS_EXECUTED.CORE_CYCLES_GE_3",
72509625cffSIan Rogers        "PublicDescription": "Counts cycles when at least 3 micro-ops are executed from any thread on physical core.",
72609625cffSIan Rogers        "SampleAfterValue": "2000003",
72709625cffSIan Rogers        "UMask": "0x2"
72809625cffSIan Rogers    },
72909625cffSIan Rogers    {
73009625cffSIan Rogers        "BriefDescription": "Cycles at least 4 micro-op is executed from any thread on physical core.",
731*fab88961SIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
73209625cffSIan Rogers        "CounterMask": "4",
73309625cffSIan Rogers        "EventCode": "0xB1",
73409625cffSIan Rogers        "EventName": "UOPS_EXECUTED.CORE_CYCLES_GE_4",
73509625cffSIan Rogers        "PublicDescription": "Counts cycles when at least 4 micro-ops are executed from any thread on physical core.",
73609625cffSIan Rogers        "SampleAfterValue": "2000003",
73709625cffSIan Rogers        "UMask": "0x2"
738cdb29a8fSJin Yao    },
739cdb29a8fSJin Yao    {
740cdb29a8fSJin Yao        "BriefDescription": "Cycles where at least 1 uop was executed per-thread",
741*fab88961SIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
742cdb29a8fSJin Yao        "CounterMask": "1",
743cdb29a8fSJin Yao        "EventCode": "0xb1",
744cdb29a8fSJin Yao        "EventName": "UOPS_EXECUTED.CYCLES_GE_1",
745cdb29a8fSJin Yao        "PublicDescription": "Cycles where at least 1 uop was executed per-thread.",
746cdb29a8fSJin Yao        "SampleAfterValue": "2000003",
747cdb29a8fSJin Yao        "UMask": "0x1"
748cdb29a8fSJin Yao    },
749cdb29a8fSJin Yao    {
750cdb29a8fSJin Yao        "BriefDescription": "Cycles where at least 2 uops were executed per-thread",
751*fab88961SIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
752cdb29a8fSJin Yao        "CounterMask": "2",
753cdb29a8fSJin Yao        "EventCode": "0xb1",
754cdb29a8fSJin Yao        "EventName": "UOPS_EXECUTED.CYCLES_GE_2",
755cdb29a8fSJin Yao        "PublicDescription": "Cycles where at least 2 uops were executed per-thread.",
756cdb29a8fSJin Yao        "SampleAfterValue": "2000003",
757cdb29a8fSJin Yao        "UMask": "0x1"
758cdb29a8fSJin Yao    },
759cdb29a8fSJin Yao    {
760cdb29a8fSJin Yao        "BriefDescription": "Cycles where at least 3 uops were executed per-thread",
761*fab88961SIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
762cdb29a8fSJin Yao        "CounterMask": "3",
763cdb29a8fSJin Yao        "EventCode": "0xb1",
764cdb29a8fSJin Yao        "EventName": "UOPS_EXECUTED.CYCLES_GE_3",
765cdb29a8fSJin Yao        "PublicDescription": "Cycles where at least 3 uops were executed per-thread.",
766cdb29a8fSJin Yao        "SampleAfterValue": "2000003",
767cdb29a8fSJin Yao        "UMask": "0x1"
768cdb29a8fSJin Yao    },
769cdb29a8fSJin Yao    {
770cdb29a8fSJin Yao        "BriefDescription": "Cycles where at least 4 uops were executed per-thread",
771*fab88961SIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
772cdb29a8fSJin Yao        "CounterMask": "4",
773cdb29a8fSJin Yao        "EventCode": "0xb1",
774cdb29a8fSJin Yao        "EventName": "UOPS_EXECUTED.CYCLES_GE_4",
775cdb29a8fSJin Yao        "PublicDescription": "Cycles where at least 4 uops were executed per-thread.",
776cdb29a8fSJin Yao        "SampleAfterValue": "2000003",
777cdb29a8fSJin Yao        "UMask": "0x1"
778cdb29a8fSJin Yao    },
779cdb29a8fSJin Yao    {
78009625cffSIan Rogers        "BriefDescription": "Counts number of cycles no uops were dispatched to be executed on this thread.",
781*fab88961SIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
782cdb29a8fSJin Yao        "CounterMask": "1",
783cdb29a8fSJin Yao        "EventCode": "0xB1",
78409625cffSIan Rogers        "EventName": "UOPS_EXECUTED.STALL_CYCLES",
78509625cffSIan Rogers        "Invert": "1",
78609625cffSIan Rogers        "PublicDescription": "Counts cycles during which no uops were dispatched from the Reservation Station (RS) per thread.",
787cdb29a8fSJin Yao        "SampleAfterValue": "2000003",
78809625cffSIan Rogers        "UMask": "0x1"
789cdb29a8fSJin Yao    },
790cdb29a8fSJin Yao    {
79109625cffSIan Rogers        "BriefDescription": "Counts the number of uops to be executed per-thread each cycle.",
792*fab88961SIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
79309625cffSIan Rogers        "EventCode": "0xb1",
79409625cffSIan Rogers        "EventName": "UOPS_EXECUTED.THREAD",
795cdb29a8fSJin Yao        "SampleAfterValue": "2000003",
79609625cffSIan Rogers        "UMask": "0x1"
797cdb29a8fSJin Yao    },
798cdb29a8fSJin Yao    {
799cdb29a8fSJin Yao        "BriefDescription": "Counts the number of x87 uops dispatched.",
800*fab88961SIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
801cdb29a8fSJin Yao        "EventCode": "0xB1",
802cdb29a8fSJin Yao        "EventName": "UOPS_EXECUTED.X87",
803cdb29a8fSJin Yao        "PublicDescription": "Counts the number of x87 uops executed.",
804cdb29a8fSJin Yao        "SampleAfterValue": "2000003",
805cdb29a8fSJin Yao        "UMask": "0x10"
806cdb29a8fSJin Yao    },
807cdb29a8fSJin Yao    {
80809625cffSIan Rogers        "BriefDescription": "Uops that RAT issues to RS",
809*fab88961SIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
81009625cffSIan Rogers        "EventCode": "0x0e",
81109625cffSIan Rogers        "EventName": "UOPS_ISSUED.ANY",
81209625cffSIan Rogers        "PublicDescription": "Counts the number of uops that the Resource Allocation Table (RAT) issues to the Reservation Station (RS).",
81309625cffSIan Rogers        "SampleAfterValue": "2000003",
81409625cffSIan Rogers        "UMask": "0x1"
815cdb29a8fSJin Yao    },
816cdb29a8fSJin Yao    {
81709625cffSIan Rogers        "BriefDescription": "Cycles when RAT does not issue Uops to RS for the thread",
818*fab88961SIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
81909625cffSIan Rogers        "CounterMask": "1",
82009625cffSIan Rogers        "EventCode": "0x0E",
82109625cffSIan Rogers        "EventName": "UOPS_ISSUED.STALL_CYCLES",
822cdb29a8fSJin Yao        "Invert": "1",
82309625cffSIan 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.",
824cdb29a8fSJin Yao        "SampleAfterValue": "1000003",
82509625cffSIan Rogers        "UMask": "0x1"
82609625cffSIan Rogers    },
82709625cffSIan Rogers    {
82809625cffSIan Rogers        "BriefDescription": "Uops inserted at issue-stage in order to preserve upper bits of vector registers.",
829*fab88961SIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
83009625cffSIan Rogers        "EventCode": "0x0e",
83109625cffSIan Rogers        "EventName": "UOPS_ISSUED.VECTOR_WIDTH_MISMATCH",
832f8e23ad1SIan 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.",
83309625cffSIan Rogers        "SampleAfterValue": "100003",
834cdb29a8fSJin Yao        "UMask": "0x2"
835cdb29a8fSJin Yao    },
836cdb29a8fSJin Yao    {
837cdb29a8fSJin Yao        "BriefDescription": "Retirement slots used.",
838*fab88961SIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
839cdb29a8fSJin Yao        "EventCode": "0xc2",
840cdb29a8fSJin Yao        "EventName": "UOPS_RETIRED.SLOTS",
841cdb29a8fSJin Yao        "PublicDescription": "Counts the retirement slots used each cycle.",
842cdb29a8fSJin Yao        "SampleAfterValue": "2000003",
843cdb29a8fSJin Yao        "UMask": "0x2"
844cdb29a8fSJin Yao    },
845cdb29a8fSJin Yao    {
84609625cffSIan Rogers        "BriefDescription": "Cycles without actually retired uops.",
847*fab88961SIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
848cdb29a8fSJin Yao        "CounterMask": "1",
84909625cffSIan Rogers        "EventCode": "0xc2",
85009625cffSIan Rogers        "EventName": "UOPS_RETIRED.STALL_CYCLES",
85109625cffSIan Rogers        "Invert": "1",
85209625cffSIan Rogers        "PublicDescription": "This event counts cycles without actually retired uops.",
85309625cffSIan Rogers        "SampleAfterValue": "1000003",
854cdb29a8fSJin Yao        "UMask": "0x2"
855cdb29a8fSJin Yao    },
856cdb29a8fSJin Yao    {
85709625cffSIan Rogers        "BriefDescription": "Cycles with less than 10 actually retired uops.",
858*fab88961SIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
85909625cffSIan Rogers        "CounterMask": "10",
86009625cffSIan Rogers        "EventCode": "0xc2",
86109625cffSIan Rogers        "EventName": "UOPS_RETIRED.TOTAL_CYCLES",
86209625cffSIan Rogers        "Invert": "1",
863f8e23ad1SIan Rogers        "PublicDescription": "Counts the number of cycles using always true condition (uops_ret < 16) applied to non PEBS uops retired event.",
86409625cffSIan Rogers        "SampleAfterValue": "1000003",
865cdb29a8fSJin Yao        "UMask": "0x2"
866cdb29a8fSJin Yao    }
867cdb29a8fSJin Yao]
868