197dca671SAndi Kleen[
297dca671SAndi Kleen    {
3fd550098SAndi Kleen        "BriefDescription": "This category represents fraction of slots where the processor's Frontend undersupplies its Backend",
4b5948fc6SIan Rogers        "MetricExpr": "IDQ_UOPS_NOT_DELIVERED.CORE / (4 * CPU_CLK_UNHALTED.THREAD)",
5fd550098SAndi Kleen        "MetricGroup": "TopdownL1",
661ec07f5SHaiyan Song        "MetricName": "Frontend_Bound",
7b5948fc6SIan Rogers        "PublicDescription": "This category represents fraction of slots where the processor's Frontend undersupplies its Backend. Frontend denotes the first part of the processor core responsible to fetch operations that are executed later on by the Backend part. Within the Frontend; a branch predictor predicts the next address to fetch; cache-lines are fetched from the memory subsystem; parsed into instructions; and lastly decoded into micro-operations (uops). Ideally the Frontend can issue Machine_Width uops every cycle to the Backend. Frontend Bound denotes unutilized issue-slots when there is no Backend stall; i.e. bubbles where Frontend delivered no uops while Backend could have accepted them. For example; stalls due to instruction-cache misses would be categorized under Frontend Bound."
8fd550098SAndi Kleen    },
9fd550098SAndi Kleen    {
10fd550098SAndi Kleen        "BriefDescription": "This category represents fraction of slots where the processor's Frontend undersupplies its Backend. SMT version; use when SMT is enabled and measuring per logical CPU.",
11b5948fc6SIan Rogers        "MetricExpr": "IDQ_UOPS_NOT_DELIVERED.CORE / (4 * ( ( CPU_CLK_UNHALTED.THREAD / 2 ) * ( 1 + CPU_CLK_UNHALTED.ONE_THREAD_ACTIVE / CPU_CLK_UNHALTED.REF_XCLK ) ))",
12fd550098SAndi Kleen        "MetricGroup": "TopdownL1_SMT",
1361ec07f5SHaiyan Song        "MetricName": "Frontend_Bound_SMT",
14b5948fc6SIan Rogers        "PublicDescription": "This category represents fraction of slots where the processor's Frontend undersupplies its Backend. Frontend denotes the first part of the processor core responsible to fetch operations that are executed later on by the Backend part. Within the Frontend; a branch predictor predicts the next address to fetch; cache-lines are fetched from the memory subsystem; parsed into instructions; and lastly decoded into micro-operations (uops). Ideally the Frontend can issue Machine_Width uops every cycle to the Backend. Frontend Bound denotes unutilized issue-slots when there is no Backend stall; i.e. bubbles where Frontend delivered no uops while Backend could have accepted them. For example; stalls due to instruction-cache misses would be categorized under Frontend Bound. SMT version; use when SMT is enabled and measuring per logical CPU."
15fd550098SAndi Kleen    },
16fd550098SAndi Kleen    {
17fd550098SAndi Kleen        "BriefDescription": "This category represents fraction of slots wasted due to incorrect speculations",
18b5948fc6SIan Rogers        "MetricExpr": "( UOPS_ISSUED.ANY - UOPS_RETIRED.RETIRE_SLOTS + 4 * INT_MISC.RECOVERY_CYCLES ) / (4 * CPU_CLK_UNHALTED.THREAD)",
19fd550098SAndi Kleen        "MetricGroup": "TopdownL1",
2061ec07f5SHaiyan Song        "MetricName": "Bad_Speculation",
2161ec07f5SHaiyan Song        "PublicDescription": "This category represents fraction of slots wasted due to incorrect speculations. This include slots used to issue uops that do not eventually get retired and slots for which the issue-pipeline was blocked due to recovery from earlier incorrect speculation. For example; wasted work due to miss-predicted branches are categorized under Bad Speculation category. Incorrect data speculation followed by Memory Ordering Nukes is another example."
22fd550098SAndi Kleen    },
23fd550098SAndi Kleen    {
24fd550098SAndi Kleen        "BriefDescription": "This category represents fraction of slots wasted due to incorrect speculations. SMT version; use when SMT is enabled and measuring per logical CPU.",
25b5948fc6SIan Rogers        "MetricExpr": "( UOPS_ISSUED.ANY - UOPS_RETIRED.RETIRE_SLOTS + 4 * ( INT_MISC.RECOVERY_CYCLES_ANY / 2 ) ) / (4 * ( ( CPU_CLK_UNHALTED.THREAD / 2 ) * ( 1 + CPU_CLK_UNHALTED.ONE_THREAD_ACTIVE / CPU_CLK_UNHALTED.REF_XCLK ) ))",
26fd550098SAndi Kleen        "MetricGroup": "TopdownL1_SMT",
2761ec07f5SHaiyan Song        "MetricName": "Bad_Speculation_SMT",
2861ec07f5SHaiyan Song        "PublicDescription": "This category represents fraction of slots wasted due to incorrect speculations. This include slots used to issue uops that do not eventually get retired and slots for which the issue-pipeline was blocked due to recovery from earlier incorrect speculation. For example; wasted work due to miss-predicted branches are categorized under Bad Speculation category. Incorrect data speculation followed by Memory Ordering Nukes is another example. SMT version; use when SMT is enabled and measuring per logical CPU."
29fd550098SAndi Kleen    },
30fd550098SAndi Kleen    {
31fd550098SAndi Kleen        "BriefDescription": "This category represents fraction of slots where no uops are being delivered due to a lack of required resources for accepting new uops in the Backend",
32b5948fc6SIan Rogers        "MetricConstraint": "NO_NMI_WATCHDOG",
33b5948fc6SIan Rogers        "MetricExpr": "1 - ( (IDQ_UOPS_NOT_DELIVERED.CORE / (4 * CPU_CLK_UNHALTED.THREAD)) + (( UOPS_ISSUED.ANY - UOPS_RETIRED.RETIRE_SLOTS + 4 * INT_MISC.RECOVERY_CYCLES ) / (4 * CPU_CLK_UNHALTED.THREAD)) + (UOPS_RETIRED.RETIRE_SLOTS / (4 * CPU_CLK_UNHALTED.THREAD)) )",
34fd550098SAndi Kleen        "MetricGroup": "TopdownL1",
3561ec07f5SHaiyan Song        "MetricName": "Backend_Bound",
3661ec07f5SHaiyan Song        "PublicDescription": "This category represents fraction of slots where no uops are being delivered due to a lack of required resources for accepting new uops in the Backend. Backend is the portion of the processor core where the out-of-order scheduler dispatches ready uops into their respective execution units; and once completed these uops get retired according to program order. For example; stalls due to data-cache misses or stalls due to the divider unit being overloaded are both categorized under Backend Bound. Backend Bound is further divided into two main categories: Memory Bound and Core Bound."
37fd550098SAndi Kleen    },
38fd550098SAndi Kleen    {
39fd550098SAndi Kleen        "BriefDescription": "This category represents fraction of slots where no uops are being delivered due to a lack of required resources for accepting new uops in the Backend. SMT version; use when SMT is enabled and measuring per logical CPU.",
40b5948fc6SIan Rogers        "MetricExpr": "1 - ( (IDQ_UOPS_NOT_DELIVERED.CORE / (4 * ( ( CPU_CLK_UNHALTED.THREAD / 2 ) * ( 1 + CPU_CLK_UNHALTED.ONE_THREAD_ACTIVE / CPU_CLK_UNHALTED.REF_XCLK ) ))) + (( UOPS_ISSUED.ANY - UOPS_RETIRED.RETIRE_SLOTS + 4 * ( INT_MISC.RECOVERY_CYCLES_ANY / 2 ) ) / (4 * ( ( CPU_CLK_UNHALTED.THREAD / 2 ) * ( 1 + CPU_CLK_UNHALTED.ONE_THREAD_ACTIVE / CPU_CLK_UNHALTED.REF_XCLK ) ))) + (UOPS_RETIRED.RETIRE_SLOTS / (4 * ( ( CPU_CLK_UNHALTED.THREAD / 2 ) * ( 1 + CPU_CLK_UNHALTED.ONE_THREAD_ACTIVE / CPU_CLK_UNHALTED.REF_XCLK ) ))) )",
41fd550098SAndi Kleen        "MetricGroup": "TopdownL1_SMT",
4261ec07f5SHaiyan Song        "MetricName": "Backend_Bound_SMT",
4361ec07f5SHaiyan Song        "PublicDescription": "This category represents fraction of slots where no uops are being delivered due to a lack of required resources for accepting new uops in the Backend. Backend is the portion of the processor core where the out-of-order scheduler dispatches ready uops into their respective execution units; and once completed these uops get retired according to program order. For example; stalls due to data-cache misses or stalls due to the divider unit being overloaded are both categorized under Backend Bound. Backend Bound is further divided into two main categories: Memory Bound and Core Bound. SMT version; use when SMT is enabled and measuring per logical CPU."
44fd550098SAndi Kleen    },
45fd550098SAndi Kleen    {
46fd550098SAndi Kleen        "BriefDescription": "This category represents fraction of slots utilized by useful work i.e. issued uops that eventually get retired",
47b5948fc6SIan Rogers        "MetricExpr": "UOPS_RETIRED.RETIRE_SLOTS / (4 * CPU_CLK_UNHALTED.THREAD)",
48fd550098SAndi Kleen        "MetricGroup": "TopdownL1",
4961ec07f5SHaiyan Song        "MetricName": "Retiring",
50b5948fc6SIan Rogers        "PublicDescription": "This category represents fraction of slots utilized by useful work i.e. issued uops that eventually get retired. Ideally; all pipeline slots would be attributed to the Retiring category.  Retiring of 100% would indicate the maximum Pipeline_Width throughput was achieved.  Maximizing Retiring typically increases the Instructions-per-cycle (see IPC metric). Note that a high Retiring value does not necessary mean there is no room for more performance.  For example; Heavy-operations or Microcode Assists are categorized under Retiring. They often indicate suboptimal performance and can often be optimized or avoided. "
51fd550098SAndi Kleen    },
52fd550098SAndi Kleen    {
53fd550098SAndi Kleen        "BriefDescription": "This category represents fraction of slots utilized by useful work i.e. issued uops that eventually get retired. SMT version; use when SMT is enabled and measuring per logical CPU.",
54b5948fc6SIan Rogers        "MetricExpr": "UOPS_RETIRED.RETIRE_SLOTS / (4 * ( ( CPU_CLK_UNHALTED.THREAD / 2 ) * ( 1 + CPU_CLK_UNHALTED.ONE_THREAD_ACTIVE / CPU_CLK_UNHALTED.REF_XCLK ) ))",
55fd550098SAndi Kleen        "MetricGroup": "TopdownL1_SMT",
5661ec07f5SHaiyan Song        "MetricName": "Retiring_SMT",
57b5948fc6SIan Rogers        "PublicDescription": "This category represents fraction of slots utilized by useful work i.e. issued uops that eventually get retired. Ideally; all pipeline slots would be attributed to the Retiring category.  Retiring of 100% would indicate the maximum Pipeline_Width throughput was achieved.  Maximizing Retiring typically increases the Instructions-per-cycle (see IPC metric). Note that a high Retiring value does not necessary mean there is no room for more performance.  For example; Heavy-operations or Microcode Assists are categorized under Retiring. They often indicate suboptimal performance and can often be optimized or avoided. SMT version; use when SMT is enabled and measuring per logical CPU."
58fd550098SAndi Kleen    },
59fd550098SAndi Kleen    {
6061ec07f5SHaiyan Song        "BriefDescription": "Instructions Per Cycle (per Logical Processor)",
6197dca671SAndi Kleen        "MetricExpr": "INST_RETIRED.ANY / CPU_CLK_UNHALTED.THREAD",
62b5948fc6SIan Rogers        "MetricGroup": "Ret;Summary",
6397dca671SAndi Kleen        "MetricName": "IPC"
6497dca671SAndi Kleen    },
6597dca671SAndi Kleen    {
66fd550098SAndi Kleen        "BriefDescription": "Uops Per Instruction",
6761ec07f5SHaiyan Song        "MetricExpr": "UOPS_RETIRED.RETIRE_SLOTS / INST_RETIRED.ANY",
68b5948fc6SIan Rogers        "MetricGroup": "Pipeline;Ret;Retire",
6997dca671SAndi Kleen        "MetricName": "UPI"
7097dca671SAndi Kleen    },
7197dca671SAndi Kleen    {
7261ec07f5SHaiyan Song        "BriefDescription": "Cycles Per Instruction (per Logical Processor)",
73b5948fc6SIan Rogers        "MetricExpr": "1 / (INST_RETIRED.ANY / CPU_CLK_UNHALTED.THREAD)",
74b5948fc6SIan Rogers        "MetricGroup": "Pipeline;Mem",
7597dca671SAndi Kleen        "MetricName": "CPI"
7697dca671SAndi Kleen    },
7797dca671SAndi Kleen    {
7861ec07f5SHaiyan Song        "BriefDescription": "Per-Logical Processor actual clocks when the Logical Processor is active.",
7997dca671SAndi Kleen        "MetricExpr": "CPU_CLK_UNHALTED.THREAD",
80b5948fc6SIan Rogers        "MetricGroup": "Pipeline",
8197dca671SAndi Kleen        "MetricName": "CLKS"
8297dca671SAndi Kleen    },
8397dca671SAndi Kleen    {
84b5948fc6SIan Rogers        "BriefDescription": "Total issue-pipeline slots (per-Physical Core till ICL; per-Logical Processor ICL onward)",
85b5948fc6SIan Rogers        "MetricExpr": "4 * CPU_CLK_UNHALTED.THREAD",
86b5948fc6SIan Rogers        "MetricGroup": "TmaL1",
8797dca671SAndi Kleen        "MetricName": "SLOTS"
8897dca671SAndi Kleen    },
8997dca671SAndi Kleen    {
90b5948fc6SIan Rogers        "BriefDescription": "Total issue-pipeline slots (per-Physical Core till ICL; per-Logical Processor ICL onward)",
91b5948fc6SIan Rogers        "MetricExpr": "4 * ( ( CPU_CLK_UNHALTED.THREAD / 2 ) * ( 1 + CPU_CLK_UNHALTED.ONE_THREAD_ACTIVE / CPU_CLK_UNHALTED.REF_XCLK ) )",
92b5948fc6SIan Rogers        "MetricGroup": "TmaL1_SMT",
93fd550098SAndi Kleen        "MetricName": "SLOTS_SMT"
94fd550098SAndi Kleen    },
95fd550098SAndi Kleen    {
96b5948fc6SIan Rogers        "BriefDescription": "The ratio of Executed- by Issued-Uops",
97b5948fc6SIan Rogers        "MetricExpr": "UOPS_DISPATCHED.THREAD / UOPS_ISSUED.ANY",
98b5948fc6SIan Rogers        "MetricGroup": "Cor;Pipeline",
99b5948fc6SIan Rogers        "MetricName": "Execute_per_Issue",
100b5948fc6SIan Rogers        "PublicDescription": "The ratio of Executed- by Issued-Uops. Ratio > 1 suggests high rate of uop micro-fusions. Ratio < 1 suggest high rate of \"execute\" at rename stage."
10197dca671SAndi Kleen    },
10297dca671SAndi Kleen    {
103b5948fc6SIan Rogers        "BriefDescription": "Instructions Per Cycle across hyper-threads (per physical core)",
104b5948fc6SIan Rogers        "MetricExpr": "INST_RETIRED.ANY / CPU_CLK_UNHALTED.THREAD",
105b5948fc6SIan Rogers        "MetricGroup": "Ret;SMT;TmaL1",
10697dca671SAndi Kleen        "MetricName": "CoreIPC"
10797dca671SAndi Kleen    },
10897dca671SAndi Kleen    {
109b5948fc6SIan Rogers        "BriefDescription": "Instructions Per Cycle across hyper-threads (per physical core)",
110b5948fc6SIan Rogers        "MetricExpr": "INST_RETIRED.ANY / ( ( CPU_CLK_UNHALTED.THREAD / 2 ) * ( 1 + CPU_CLK_UNHALTED.ONE_THREAD_ACTIVE / CPU_CLK_UNHALTED.REF_XCLK ) )",
111b5948fc6SIan Rogers        "MetricGroup": "Ret;SMT;TmaL1_SMT",
112fd550098SAndi Kleen        "MetricName": "CoreIPC_SMT"
113fd550098SAndi Kleen    },
114fd550098SAndi Kleen    {
115fd550098SAndi Kleen        "BriefDescription": "Floating Point Operations Per Cycle",
116b5948fc6SIan Rogers        "MetricExpr": "( 1 * ( FP_COMP_OPS_EXE.SSE_SCALAR_SINGLE + FP_COMP_OPS_EXE.SSE_SCALAR_DOUBLE ) + 2 * FP_COMP_OPS_EXE.SSE_PACKED_DOUBLE + 4 * ( FP_COMP_OPS_EXE.SSE_PACKED_SINGLE + SIMD_FP_256.PACKED_DOUBLE ) + 8 * SIMD_FP_256.PACKED_SINGLE ) / CPU_CLK_UNHALTED.THREAD",
117b5948fc6SIan Rogers        "MetricGroup": "Ret;Flops",
118fd550098SAndi Kleen        "MetricName": "FLOPc"
119fd550098SAndi Kleen    },
120fd550098SAndi Kleen    {
121fd550098SAndi Kleen        "BriefDescription": "Floating Point Operations Per Cycle",
122b5948fc6SIan Rogers        "MetricExpr": "( 1 * ( FP_COMP_OPS_EXE.SSE_SCALAR_SINGLE + FP_COMP_OPS_EXE.SSE_SCALAR_DOUBLE ) + 2 * FP_COMP_OPS_EXE.SSE_PACKED_DOUBLE + 4 * ( FP_COMP_OPS_EXE.SSE_PACKED_SINGLE + SIMD_FP_256.PACKED_DOUBLE ) + 8 * SIMD_FP_256.PACKED_SINGLE ) / ( ( CPU_CLK_UNHALTED.THREAD / 2 ) * ( 1 + CPU_CLK_UNHALTED.ONE_THREAD_ACTIVE / CPU_CLK_UNHALTED.REF_XCLK ) )",
123b5948fc6SIan Rogers        "MetricGroup": "Ret;Flops_SMT",
124fd550098SAndi Kleen        "MetricName": "FLOPc_SMT"
125fd550098SAndi Kleen    },
126fd550098SAndi Kleen    {
127*777e1312SIan Rogers        "BriefDescription": "Instruction-Level-Parallelism (average number of uops executed when there is execution) per-core",
12861ec07f5SHaiyan Song        "MetricExpr": "UOPS_DISPATCHED.THREAD / (( cpu@UOPS_DISPATCHED.CORE\\,cmask\\=1@ / 2 ) if #SMT_on else cpu@UOPS_DISPATCHED.CORE\\,cmask\\=1@)",
129b5948fc6SIan Rogers        "MetricGroup": "Backend;Cor;Pipeline;PortsUtil",
13097dca671SAndi Kleen        "MetricName": "ILP"
13197dca671SAndi Kleen    },
13297dca671SAndi Kleen    {
13361ec07f5SHaiyan Song        "BriefDescription": "Core actual clocks when any Logical Processor is active on the Physical Core",
134fd550098SAndi Kleen        "MetricExpr": "( ( CPU_CLK_UNHALTED.THREAD / 2 ) * ( 1 + CPU_CLK_UNHALTED.ONE_THREAD_ACTIVE / CPU_CLK_UNHALTED.REF_XCLK ) )",
13597dca671SAndi Kleen        "MetricGroup": "SMT",
13697dca671SAndi Kleen        "MetricName": "CORE_CLKS"
13797dca671SAndi Kleen    },
13897dca671SAndi Kleen    {
139b5948fc6SIan Rogers        "BriefDescription": "Total number of retired Instructions, Sample with: INST_RETIRED.PREC_DIST",
140b5948fc6SIan Rogers        "MetricExpr": "INST_RETIRED.ANY",
141b5948fc6SIan Rogers        "MetricGroup": "Summary;TmaL1",
142b5948fc6SIan Rogers        "MetricName": "Instructions"
143b5948fc6SIan Rogers    },
144b5948fc6SIan Rogers    {
145*777e1312SIan Rogers        "BriefDescription": "Average number of Uops retired in cycles where at least one uop has retired.",
146*777e1312SIan Rogers        "MetricExpr": "UOPS_RETIRED.RETIRE_SLOTS / cpu@UOPS_RETIRED.RETIRE_SLOTS\\,cmask\\=1@",
147*777e1312SIan Rogers        "MetricGroup": "Pipeline;Ret",
148*777e1312SIan Rogers        "MetricName": "Retire"
149*777e1312SIan Rogers    },
150*777e1312SIan Rogers    {
151b5948fc6SIan Rogers        "BriefDescription": "Fraction of Uops delivered by the DSB (aka Decoded ICache; or Uop Cache)",
152b5948fc6SIan Rogers        "MetricExpr": "IDQ.DSB_UOPS / (( IDQ.DSB_UOPS + LSD.UOPS + IDQ.MITE_UOPS + IDQ.MS_UOPS ) )",
153b5948fc6SIan Rogers        "MetricGroup": "DSB;Fed;FetchBW",
154b5948fc6SIan Rogers        "MetricName": "DSB_Coverage"
155b5948fc6SIan Rogers    },
156b5948fc6SIan Rogers    {
157fd550098SAndi Kleen        "BriefDescription": "Average CPU Utilization",
15861ec07f5SHaiyan Song        "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC / msr@tsc@",
159b5948fc6SIan Rogers        "MetricGroup": "HPC;Summary",
16097dca671SAndi Kleen        "MetricName": "CPU_Utilization"
16197dca671SAndi Kleen    },
16297dca671SAndi Kleen    {
163b5948fc6SIan Rogers        "BriefDescription": "Measured Average Frequency for unhalted processors [GHz]",
164b5948fc6SIan Rogers        "MetricExpr": "(CPU_CLK_UNHALTED.THREAD / CPU_CLK_UNHALTED.REF_TSC) * msr@tsc@ / 1000000000 / duration_time",
165b5948fc6SIan Rogers        "MetricGroup": "Summary;Power",
166b5948fc6SIan Rogers        "MetricName": "Average_Frequency"
167b5948fc6SIan Rogers    },
168b5948fc6SIan Rogers    {
16997dca671SAndi Kleen        "BriefDescription": "Giga Floating Point Operations Per Second",
170b5948fc6SIan Rogers        "MetricExpr": "( ( 1 * ( FP_COMP_OPS_EXE.SSE_SCALAR_SINGLE + FP_COMP_OPS_EXE.SSE_SCALAR_DOUBLE ) + 2 * FP_COMP_OPS_EXE.SSE_PACKED_DOUBLE + 4 * ( FP_COMP_OPS_EXE.SSE_PACKED_SINGLE + SIMD_FP_256.PACKED_DOUBLE ) + 8 * SIMD_FP_256.PACKED_SINGLE ) / 1000000000 ) / duration_time",
171b5948fc6SIan Rogers        "MetricGroup": "Cor;Flops;HPC",
172*777e1312SIan Rogers        "MetricName": "GFLOPs",
173*777e1312SIan Rogers        "PublicDescription": "Giga Floating Point Operations Per Second. Aggregate across all supported options of: FP precisions, scalar and vector instructions, vector-width and AMX engine."
17497dca671SAndi Kleen    },
17597dca671SAndi Kleen    {
176fd550098SAndi Kleen        "BriefDescription": "Average Frequency Utilization relative nominal frequency",
17761ec07f5SHaiyan Song        "MetricExpr": "CPU_CLK_UNHALTED.THREAD / CPU_CLK_UNHALTED.REF_TSC",
17897dca671SAndi Kleen        "MetricGroup": "Power",
17997dca671SAndi Kleen        "MetricName": "Turbo_Utilization"
18097dca671SAndi Kleen    },
18197dca671SAndi Kleen    {
18261ec07f5SHaiyan Song        "BriefDescription": "Fraction of cycles where both hardware Logical Processors were active",
183b5948fc6SIan Rogers        "MetricExpr": "1 - CPU_CLK_UNHALTED.ONE_THREAD_ACTIVE / ( CPU_CLK_UNHALTED.REF_XCLK_ANY / 2 ) if #SMT_on else 0",
184b5948fc6SIan Rogers        "MetricGroup": "SMT",
18597dca671SAndi Kleen        "MetricName": "SMT_2T_Utilization"
18697dca671SAndi Kleen    },
18797dca671SAndi Kleen    {
188b5948fc6SIan Rogers        "BriefDescription": "Fraction of cycles spent in the Operating System (OS) Kernel mode",
189b5948fc6SIan Rogers        "MetricExpr": "CPU_CLK_UNHALTED.THREAD_P:k / CPU_CLK_UNHALTED.THREAD",
190b5948fc6SIan Rogers        "MetricGroup": "OS",
19197dca671SAndi Kleen        "MetricName": "Kernel_Utilization"
19297dca671SAndi Kleen    },
19397dca671SAndi Kleen    {
194b5948fc6SIan Rogers        "BriefDescription": "Cycles Per Instruction for the Operating System (OS) Kernel mode",
195b5948fc6SIan Rogers        "MetricExpr": "CPU_CLK_UNHALTED.THREAD_P:k / INST_RETIRED.ANY_P:k",
196b5948fc6SIan Rogers        "MetricGroup": "OS",
197b5948fc6SIan Rogers        "MetricName": "Kernel_CPI"
198b5948fc6SIan Rogers    },
199b5948fc6SIan Rogers    {
200fd550098SAndi Kleen        "BriefDescription": "Average external Memory Bandwidth Use for reads and writes [GB / sec]",
20161ec07f5SHaiyan Song        "MetricExpr": "64 * ( arb@event\\=0x81\\,umask\\=0x1@ + arb@event\\=0x84\\,umask\\=0x1@ ) / 1000000 / duration_time / 1000",
202b5948fc6SIan Rogers        "MetricGroup": "HPC;Mem;MemoryBW;SoC",
203fd550098SAndi Kleen        "MetricName": "DRAM_BW_Use"
204fd550098SAndi Kleen    },
205fd550098SAndi Kleen    {
206b5948fc6SIan Rogers        "BriefDescription": "Average latency of all requests to external memory (in Uncore cycles)",
207b5948fc6SIan Rogers        "MetricExpr": "UNC_ARB_TRK_OCCUPANCY.ALL / arb@event\\=0x81\\,umask\\=0x1@",
208b5948fc6SIan Rogers        "MetricGroup": "Mem;SoC",
209b5948fc6SIan Rogers        "MetricName": "MEM_Request_Latency"
210b5948fc6SIan Rogers    },
211b5948fc6SIan Rogers    {
212b5948fc6SIan Rogers        "BriefDescription": "Average number of parallel requests to external memory. Accounts for all requests",
213b5948fc6SIan Rogers        "MetricExpr": "UNC_ARB_TRK_OCCUPANCY.ALL / arb@event\\=0x81\\,umask\\=0x1@",
214b5948fc6SIan Rogers        "MetricGroup": "Mem;SoC",
215b5948fc6SIan Rogers        "MetricName": "MEM_Parallel_Requests"
216b5948fc6SIan Rogers    },
217b5948fc6SIan Rogers    {
218b5948fc6SIan Rogers        "BriefDescription": "Instructions per Far Branch ( Far Branches apply upon transition from application to operating system, handling interrupts, exceptions) [lower number means higher occurrence rate]",
219b5948fc6SIan Rogers        "MetricExpr": "INST_RETIRED.ANY / BR_INST_RETIRED.FAR_BRANCH:u",
220b5948fc6SIan Rogers        "MetricGroup": "Branches;OS",
221b5948fc6SIan Rogers        "MetricName": "IpFarBranch"
222b5948fc6SIan Rogers    },
223b5948fc6SIan Rogers    {
22461ec07f5SHaiyan Song        "BriefDescription": "C3 residency percent per core",
22597dca671SAndi Kleen        "MetricExpr": "(cstate_core@c3\\-residency@ / msr@tsc@) * 100",
22697dca671SAndi Kleen        "MetricGroup": "Power",
22797dca671SAndi Kleen        "MetricName": "C3_Core_Residency"
22897dca671SAndi Kleen    },
22997dca671SAndi Kleen    {
23061ec07f5SHaiyan Song        "BriefDescription": "C6 residency percent per core",
23197dca671SAndi Kleen        "MetricExpr": "(cstate_core@c6\\-residency@ / msr@tsc@) * 100",
23297dca671SAndi Kleen        "MetricGroup": "Power",
23397dca671SAndi Kleen        "MetricName": "C6_Core_Residency"
23497dca671SAndi Kleen    },
23597dca671SAndi Kleen    {
23661ec07f5SHaiyan Song        "BriefDescription": "C7 residency percent per core",
23797dca671SAndi Kleen        "MetricExpr": "(cstate_core@c7\\-residency@ / msr@tsc@) * 100",
23897dca671SAndi Kleen        "MetricGroup": "Power",
23997dca671SAndi Kleen        "MetricName": "C7_Core_Residency"
24097dca671SAndi Kleen    },
24197dca671SAndi Kleen    {
24261ec07f5SHaiyan Song        "BriefDescription": "C2 residency percent per package",
24397dca671SAndi Kleen        "MetricExpr": "(cstate_pkg@c2\\-residency@ / msr@tsc@) * 100",
24497dca671SAndi Kleen        "MetricGroup": "Power",
24597dca671SAndi Kleen        "MetricName": "C2_Pkg_Residency"
24697dca671SAndi Kleen    },
24797dca671SAndi Kleen    {
24861ec07f5SHaiyan Song        "BriefDescription": "C3 residency percent per package",
24997dca671SAndi Kleen        "MetricExpr": "(cstate_pkg@c3\\-residency@ / msr@tsc@) * 100",
25097dca671SAndi Kleen        "MetricGroup": "Power",
25197dca671SAndi Kleen        "MetricName": "C3_Pkg_Residency"
25297dca671SAndi Kleen    },
25397dca671SAndi Kleen    {
25461ec07f5SHaiyan Song        "BriefDescription": "C6 residency percent per package",
25597dca671SAndi Kleen        "MetricExpr": "(cstate_pkg@c6\\-residency@ / msr@tsc@) * 100",
25697dca671SAndi Kleen        "MetricGroup": "Power",
25797dca671SAndi Kleen        "MetricName": "C6_Pkg_Residency"
25897dca671SAndi Kleen    },
25997dca671SAndi Kleen    {
26061ec07f5SHaiyan Song        "BriefDescription": "C7 residency percent per package",
26197dca671SAndi Kleen        "MetricExpr": "(cstate_pkg@c7\\-residency@ / msr@tsc@) * 100",
26297dca671SAndi Kleen        "MetricGroup": "Power",
26397dca671SAndi Kleen        "MetricName": "C7_Pkg_Residency"
26497dca671SAndi Kleen    }
26597dca671SAndi Kleen]
266