1959826caSMatt Macy[ 2959826caSMatt Macy { 3*92b14858SMatt Macy "BriefDescription": "This category represents fraction of slots where the processor's Frontend undersupplies its Backend", 4*92b14858SMatt Macy "MetricExpr": "IDQ_UOPS_NOT_DELIVERED.CORE / (4 * cycles)", 5*92b14858SMatt Macy "MetricGroup": "TopdownL1", 6*92b14858SMatt Macy "MetricName": "Frontend_Bound", 7*92b14858SMatt Macy "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-ops (uops). Ideally the Frontend can issue 4 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." 8*92b14858SMatt Macy }, 9*92b14858SMatt Macy { 10*92b14858SMatt Macy "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.", 11*92b14858SMatt Macy "MetricExpr": "IDQ_UOPS_NOT_DELIVERED.CORE / (4 * (( ( CPU_CLK_UNHALTED.THREAD / 2 ) * ( 1 + CPU_CLK_UNHALTED.ONE_THREAD_ACTIVE / CPU_CLK_UNHALTED.REF_XCLK ) )))", 12*92b14858SMatt Macy "MetricGroup": "TopdownL1_SMT", 13*92b14858SMatt Macy "MetricName": "Frontend_Bound_SMT", 14*92b14858SMatt Macy "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-ops (uops). Ideally the Frontend can issue 4 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." 15*92b14858SMatt Macy }, 16*92b14858SMatt Macy { 17*92b14858SMatt Macy "BriefDescription": "This category represents fraction of slots wasted due to incorrect speculations", 18*92b14858SMatt Macy "MetricExpr": "( UOPS_ISSUED.ANY - UOPS_RETIRED.RETIRE_SLOTS + 4 * INT_MISC.RECOVERY_CYCLES ) / (4 * cycles)", 19*92b14858SMatt Macy "MetricGroup": "TopdownL1", 20*92b14858SMatt Macy "MetricName": "Bad_Speculation", 21*92b14858SMatt Macy "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." 22*92b14858SMatt Macy }, 23*92b14858SMatt Macy { 24*92b14858SMatt Macy "BriefDescription": "This category represents fraction of slots wasted due to incorrect speculations. SMT version; use when SMT is enabled and measuring per logical CPU.", 25*92b14858SMatt Macy "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 ) )))", 26*92b14858SMatt Macy "MetricGroup": "TopdownL1_SMT", 27*92b14858SMatt Macy "MetricName": "Bad_Speculation_SMT", 28*92b14858SMatt Macy "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." 29*92b14858SMatt Macy }, 30*92b14858SMatt Macy { 31*92b14858SMatt Macy "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", 32*92b14858SMatt Macy "MetricExpr": "1 - ( (IDQ_UOPS_NOT_DELIVERED.CORE / (4 * cycles)) + (( UOPS_ISSUED.ANY - UOPS_RETIRED.RETIRE_SLOTS + 4 * INT_MISC.RECOVERY_CYCLES ) / (4 * cycles)) + (UOPS_RETIRED.RETIRE_SLOTS / (4 * cycles)) )", 33*92b14858SMatt Macy "MetricGroup": "TopdownL1", 34*92b14858SMatt Macy "MetricName": "Backend_Bound", 35*92b14858SMatt Macy "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." 36*92b14858SMatt Macy }, 37*92b14858SMatt Macy { 38*92b14858SMatt Macy "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.", 39*92b14858SMatt Macy "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 ) )))) )", 40*92b14858SMatt Macy "MetricGroup": "TopdownL1_SMT", 41*92b14858SMatt Macy "MetricName": "Backend_Bound_SMT", 42*92b14858SMatt Macy "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." 43*92b14858SMatt Macy }, 44*92b14858SMatt Macy { 45*92b14858SMatt Macy "BriefDescription": "This category represents fraction of slots utilized by useful work i.e. issued uops that eventually get retired", 46*92b14858SMatt Macy "MetricExpr": "UOPS_RETIRED.RETIRE_SLOTS / (4 * cycles)", 47*92b14858SMatt Macy "MetricGroup": "TopdownL1", 48*92b14858SMatt Macy "MetricName": "Retiring", 49*92b14858SMatt Macy "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 4 uops retired per cycle has been achieved. Maximizing Retiring typically increases the Instruction-Per-Cycle metric. Note that a high Retiring value does not necessary mean there is no room for more performance. For example; Microcode assists are categorized under Retiring. They hurt performance and can often be avoided. " 50*92b14858SMatt Macy }, 51*92b14858SMatt Macy { 52*92b14858SMatt Macy "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.", 53*92b14858SMatt Macy "MetricExpr": "UOPS_RETIRED.RETIRE_SLOTS / (4 * (( ( CPU_CLK_UNHALTED.THREAD / 2 ) * ( 1 + CPU_CLK_UNHALTED.ONE_THREAD_ACTIVE / CPU_CLK_UNHALTED.REF_XCLK ) )))", 54*92b14858SMatt Macy "MetricGroup": "TopdownL1_SMT", 55*92b14858SMatt Macy "MetricName": "Retiring_SMT", 56*92b14858SMatt Macy "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 4 uops retired per cycle has been achieved. Maximizing Retiring typically increases the Instruction-Per-Cycle metric. Note that a high Retiring value does not necessary mean there is no room for more performance. For example; Microcode assists are categorized under Retiring. They hurt performance and can often be avoided. SMT version; use when SMT is enabled and measuring per logical CPU." 57*92b14858SMatt Macy }, 58*92b14858SMatt Macy { 59*92b14858SMatt Macy "BriefDescription": "Instructions Per Cycle (per Logical Processor)", 60959826caSMatt Macy "MetricExpr": "INST_RETIRED.ANY / CPU_CLK_UNHALTED.THREAD", 61959826caSMatt Macy "MetricGroup": "TopDownL1", 62959826caSMatt Macy "MetricName": "IPC" 63959826caSMatt Macy }, 64959826caSMatt Macy { 65959826caSMatt Macy "BriefDescription": "Uops Per Instruction", 66959826caSMatt Macy "MetricExpr": "UOPS_RETIRED.RETIRE_SLOTS / INST_RETIRED.ANY", 67*92b14858SMatt Macy "MetricGroup": "Pipeline;Retire", 68959826caSMatt Macy "MetricName": "UPI" 69959826caSMatt Macy }, 70959826caSMatt Macy { 71*92b14858SMatt Macy "BriefDescription": "Rough Estimation of fraction of fetched lines bytes that were likely (includes speculatively fetches) consumed by program instructions", 72959826caSMatt Macy "MetricExpr": "min( 1 , UOPS_ISSUED.ANY / ( (UOPS_RETIRED.RETIRE_SLOTS / INST_RETIRED.ANY) * 32 * ( ICACHE.HIT + ICACHE.MISSES ) / 4 ) )", 73*92b14858SMatt Macy "MetricGroup": "PGO;IcMiss", 74959826caSMatt Macy "MetricName": "IFetch_Line_Utilization" 75959826caSMatt Macy }, 76959826caSMatt Macy { 77*92b14858SMatt Macy "BriefDescription": "Fraction of Uops delivered by the DSB (aka Decoded ICache; or Uop Cache)", 78*92b14858SMatt Macy "MetricExpr": "IDQ.DSB_UOPS / (( IDQ.DSB_UOPS + LSD.UOPS + IDQ.MITE_UOPS + IDQ.MS_UOPS ) )", 79*92b14858SMatt Macy "MetricGroup": "DSB;Fetch_BW", 80959826caSMatt Macy "MetricName": "DSB_Coverage" 81959826caSMatt Macy }, 82959826caSMatt Macy { 83*92b14858SMatt Macy "BriefDescription": "Cycles Per Instruction (per Logical Processor)", 84959826caSMatt Macy "MetricExpr": "1 / (INST_RETIRED.ANY / cycles)", 85959826caSMatt Macy "MetricGroup": "Pipeline;Summary", 86959826caSMatt Macy "MetricName": "CPI" 87959826caSMatt Macy }, 88959826caSMatt Macy { 89*92b14858SMatt Macy "BriefDescription": "Per-Logical Processor actual clocks when the Logical Processor is active.", 90959826caSMatt Macy "MetricExpr": "CPU_CLK_UNHALTED.THREAD", 91959826caSMatt Macy "MetricGroup": "Summary", 92959826caSMatt Macy "MetricName": "CLKS" 93959826caSMatt Macy }, 94959826caSMatt Macy { 95*92b14858SMatt Macy "BriefDescription": "Total issue-pipeline slots (per-Physical Core)", 96*92b14858SMatt Macy "MetricExpr": "4 * cycles", 97959826caSMatt Macy "MetricGroup": "TopDownL1", 98959826caSMatt Macy "MetricName": "SLOTS" 99959826caSMatt Macy }, 100959826caSMatt Macy { 101*92b14858SMatt Macy "BriefDescription": "Total issue-pipeline slots (per-Physical Core)", 102*92b14858SMatt Macy "MetricExpr": "4 * (( ( CPU_CLK_UNHALTED.THREAD / 2 ) * ( 1 + CPU_CLK_UNHALTED.ONE_THREAD_ACTIVE / CPU_CLK_UNHALTED.REF_XCLK ) ))", 103*92b14858SMatt Macy "MetricGroup": "TopDownL1_SMT", 104*92b14858SMatt Macy "MetricName": "SLOTS_SMT" 105*92b14858SMatt Macy }, 106*92b14858SMatt Macy { 107959826caSMatt Macy "BriefDescription": "Total number of retired Instructions", 108959826caSMatt Macy "MetricExpr": "INST_RETIRED.ANY", 109959826caSMatt Macy "MetricGroup": "Summary", 110959826caSMatt Macy "MetricName": "Instructions" 111959826caSMatt Macy }, 112959826caSMatt Macy { 113959826caSMatt Macy "BriefDescription": "Instructions Per Cycle (per physical core)", 114*92b14858SMatt Macy "MetricExpr": "INST_RETIRED.ANY / cycles", 115959826caSMatt Macy "MetricGroup": "SMT", 116959826caSMatt Macy "MetricName": "CoreIPC" 117959826caSMatt Macy }, 118959826caSMatt Macy { 119*92b14858SMatt Macy "BriefDescription": "Instructions Per Cycle (per physical core)", 120*92b14858SMatt Macy "MetricExpr": "INST_RETIRED.ANY / (( ( CPU_CLK_UNHALTED.THREAD / 2 ) * ( 1 + CPU_CLK_UNHALTED.ONE_THREAD_ACTIVE / CPU_CLK_UNHALTED.REF_XCLK ) ))", 121*92b14858SMatt Macy "MetricGroup": "SMT", 122*92b14858SMatt Macy "MetricName": "CoreIPC_SMT" 123*92b14858SMatt Macy }, 124*92b14858SMatt Macy { 125*92b14858SMatt Macy "BriefDescription": "Floating Point Operations Per Cycle", 126*92b14858SMatt Macy "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 )) / cycles", 127*92b14858SMatt Macy "MetricGroup": "FLOPS", 128*92b14858SMatt Macy "MetricName": "FLOPc" 129*92b14858SMatt Macy }, 130*92b14858SMatt Macy { 131*92b14858SMatt Macy "BriefDescription": "Floating Point Operations Per Cycle", 132*92b14858SMatt Macy "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 ) ))", 133*92b14858SMatt Macy "MetricGroup": "FLOPS_SMT", 134*92b14858SMatt Macy "MetricName": "FLOPc_SMT" 135*92b14858SMatt Macy }, 136*92b14858SMatt Macy { 137959826caSMatt Macy "BriefDescription": "Instruction-Level-Parallelism (average number of uops executed when there is at least 1 uop executed)", 138959826caSMatt Macy "MetricExpr": "UOPS_DISPATCHED.THREAD / (( cpu@UOPS_DISPATCHED.CORE\\,cmask\\=1@ / 2 ) if #SMT_on else cpu@UOPS_DISPATCHED.CORE\\,cmask\\=1@)", 139*92b14858SMatt Macy "MetricGroup": "Pipeline", 140959826caSMatt Macy "MetricName": "ILP" 141959826caSMatt Macy }, 142959826caSMatt Macy { 143*92b14858SMatt Macy "BriefDescription": "Core actual clocks when any Logical Processor is active on the Physical Core", 144*92b14858SMatt Macy "MetricExpr": "( ( CPU_CLK_UNHALTED.THREAD / 2 ) * ( 1 + CPU_CLK_UNHALTED.ONE_THREAD_ACTIVE / CPU_CLK_UNHALTED.REF_XCLK ) )", 145959826caSMatt Macy "MetricGroup": "SMT", 146959826caSMatt Macy "MetricName": "CORE_CLKS" 147959826caSMatt Macy }, 148959826caSMatt Macy { 149959826caSMatt Macy "BriefDescription": "Average CPU Utilization", 150959826caSMatt Macy "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC / msr@tsc@", 151959826caSMatt Macy "MetricGroup": "Summary", 152959826caSMatt Macy "MetricName": "CPU_Utilization" 153959826caSMatt Macy }, 154959826caSMatt Macy { 155959826caSMatt Macy "BriefDescription": "Giga Floating Point Operations Per Second", 156*92b14858SMatt Macy "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", 157959826caSMatt Macy "MetricGroup": "FLOPS;Summary", 158959826caSMatt Macy "MetricName": "GFLOPs" 159959826caSMatt Macy }, 160959826caSMatt Macy { 161959826caSMatt Macy "BriefDescription": "Average Frequency Utilization relative nominal frequency", 162959826caSMatt Macy "MetricExpr": "CPU_CLK_UNHALTED.THREAD / CPU_CLK_UNHALTED.REF_TSC", 163959826caSMatt Macy "MetricGroup": "Power", 164959826caSMatt Macy "MetricName": "Turbo_Utilization" 165959826caSMatt Macy }, 166959826caSMatt Macy { 167*92b14858SMatt Macy "BriefDescription": "Fraction of cycles where both hardware Logical Processors were active", 168959826caSMatt Macy "MetricExpr": "1 - CPU_CLK_THREAD_UNHALTED.ONE_THREAD_ACTIVE / ( CPU_CLK_THREAD_UNHALTED.REF_XCLK_ANY / 2 ) if #SMT_on else 0", 169959826caSMatt Macy "MetricGroup": "SMT;Summary", 170959826caSMatt Macy "MetricName": "SMT_2T_Utilization" 171959826caSMatt Macy }, 172959826caSMatt Macy { 173959826caSMatt Macy "BriefDescription": "Fraction of cycles spent in Kernel mode", 174*92b14858SMatt Macy "MetricExpr": "CPU_CLK_UNHALTED.REF_TSC:k / CPU_CLK_UNHALTED.REF_TSC", 175959826caSMatt Macy "MetricGroup": "Summary", 176959826caSMatt Macy "MetricName": "Kernel_Utilization" 177959826caSMatt Macy }, 178959826caSMatt Macy { 179*92b14858SMatt Macy "BriefDescription": "Average external Memory Bandwidth Use for reads and writes [GB / sec]", 180*92b14858SMatt Macy "MetricExpr": "64 * ( arb@event\\=0x81\\,umask\\=0x1@ + arb@event\\=0x84\\,umask\\=0x1@ ) / 1000000 / duration_time / 1000", 181*92b14858SMatt Macy "MetricGroup": "Memory_BW", 182*92b14858SMatt Macy "MetricName": "DRAM_BW_Use" 183*92b14858SMatt Macy }, 184*92b14858SMatt Macy { 185959826caSMatt Macy "BriefDescription": "C3 residency percent per core", 186959826caSMatt Macy "MetricExpr": "(cstate_core@c3\\-residency@ / msr@tsc@) * 100", 187959826caSMatt Macy "MetricGroup": "Power", 188959826caSMatt Macy "MetricName": "C3_Core_Residency" 189959826caSMatt Macy }, 190959826caSMatt Macy { 191959826caSMatt Macy "BriefDescription": "C6 residency percent per core", 192959826caSMatt Macy "MetricExpr": "(cstate_core@c6\\-residency@ / msr@tsc@) * 100", 193959826caSMatt Macy "MetricGroup": "Power", 194959826caSMatt Macy "MetricName": "C6_Core_Residency" 195959826caSMatt Macy }, 196959826caSMatt Macy { 197959826caSMatt Macy "BriefDescription": "C7 residency percent per core", 198959826caSMatt Macy "MetricExpr": "(cstate_core@c7\\-residency@ / msr@tsc@) * 100", 199959826caSMatt Macy "MetricGroup": "Power", 200959826caSMatt Macy "MetricName": "C7_Core_Residency" 201959826caSMatt Macy }, 202959826caSMatt Macy { 203959826caSMatt Macy "BriefDescription": "C2 residency percent per package", 204959826caSMatt Macy "MetricExpr": "(cstate_pkg@c2\\-residency@ / msr@tsc@) * 100", 205959826caSMatt Macy "MetricGroup": "Power", 206959826caSMatt Macy "MetricName": "C2_Pkg_Residency" 207959826caSMatt Macy }, 208959826caSMatt Macy { 209959826caSMatt Macy "BriefDescription": "C3 residency percent per package", 210959826caSMatt Macy "MetricExpr": "(cstate_pkg@c3\\-residency@ / msr@tsc@) * 100", 211959826caSMatt Macy "MetricGroup": "Power", 212959826caSMatt Macy "MetricName": "C3_Pkg_Residency" 213959826caSMatt Macy }, 214959826caSMatt Macy { 215959826caSMatt Macy "BriefDescription": "C6 residency percent per package", 216959826caSMatt Macy "MetricExpr": "(cstate_pkg@c6\\-residency@ / msr@tsc@) * 100", 217959826caSMatt Macy "MetricGroup": "Power", 218959826caSMatt Macy "MetricName": "C6_Pkg_Residency" 219959826caSMatt Macy }, 220959826caSMatt Macy { 221959826caSMatt Macy "BriefDescription": "C7 residency percent per package", 222959826caSMatt Macy "MetricExpr": "(cstate_pkg@c7\\-residency@ / msr@tsc@) * 100", 223959826caSMatt Macy "MetricGroup": "Power", 224959826caSMatt Macy "MetricName": "C7_Pkg_Residency" 225959826caSMatt Macy } 226959826caSMatt Macy] 227