forked from Minki/linux
perf vendor events: Update Intel ivytown
Update to v21, the metrics are based on TMA 4.4 full. Use script at: https://github.com/intel/event-converter-for-linux-perf/blob/master/download_and_gen.py to download and generate the latest events and metrics. Manually copy the ivytown files into perf and update mapfile.csv. Tested on a non-ivytown with 'perf test': 10: PMU events : 10.1: PMU event table sanity : Ok 10.2: PMU event map aliases : Ok 10.3: Parsing of PMU event table metrics : Ok 10.4: Parsing of PMU event table metrics with fake PMUs : Ok Signed-off-by: Ian Rogers <irogers@google.com> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Alexandre Torgue <alexandre.torgue@foss.st.com> Cc: Andi Kleen <ak@linux.intel.com> Cc: Caleb Biggers <caleb.biggers@intel.com> Cc: James Clark <james.clark@arm.com> Cc: Jiri Olsa <jolsa@kernel.org> Cc: John Garry <john.garry@huawei.com> Cc: Kan Liang <kan.liang@linux.intel.com> Cc: Kshipra Bopardikar <kshipra.bopardikar@intel.com> Cc: Mark Rutland <mark.rutland@arm.com> Cc: Maxime Coquelin <mcoquelin.stm32@gmail.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Perry Taylor <perry.taylor@intel.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Sedat Dilek <sedat.dilek@gmail.com> Cc: Stephane Eranian <eranian@google.com> Cc: Xing Zhengjun <zhengjun.xing@linux.intel.com> Link: http://lore.kernel.org/lkml/20220727220832.2865794-16-irogers@google.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
80c14459f6
commit
6220136831
@ -1257,4 +1257,4 @@
|
||||
"SampleAfterValue": "100003",
|
||||
"UMask": "0x10"
|
||||
}
|
||||
]
|
||||
]
|
||||
|
@ -166,4 +166,4 @@
|
||||
"SampleAfterValue": "2000003",
|
||||
"UMask": "0x1"
|
||||
}
|
||||
]
|
||||
]
|
||||
|
@ -312,4 +312,4 @@
|
||||
"SampleAfterValue": "2000003",
|
||||
"UMask": "0x1"
|
||||
}
|
||||
]
|
||||
]
|
||||
|
@ -130,17 +130,11 @@
|
||||
"MetricName": "FLOPc_SMT"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Instruction-Level-Parallelism (average number of uops executed when there is at least 1 uop executed)",
|
||||
"BriefDescription": "Instruction-Level-Parallelism (average number of uops executed when there is execution) per-core",
|
||||
"MetricExpr": "UOPS_EXECUTED.THREAD / (( cpu@UOPS_EXECUTED.CORE\\,cmask\\=1@ / 2 ) if #SMT_on else UOPS_EXECUTED.CYCLES_GE_1_UOP_EXEC)",
|
||||
"MetricGroup": "Backend;Cor;Pipeline;PortsUtil",
|
||||
"MetricName": "ILP"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Number of Instructions per non-speculative Branch Misprediction (JEClear)",
|
||||
"MetricExpr": "INST_RETIRED.ANY / BR_MISP_RETIRED.ALL_BRANCHES",
|
||||
"MetricGroup": "Bad;BadSpec;BrMispredicts",
|
||||
"MetricName": "IpMispredict"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Core actual clocks when any Logical Processor is active on the Physical Core",
|
||||
"MetricExpr": "( ( CPU_CLK_UNHALTED.THREAD / 2 ) * ( 1 + CPU_CLK_UNHALTED.ONE_THREAD_ACTIVE / CPU_CLK_UNHALTED.REF_XCLK ) )",
|
||||
@ -196,6 +190,18 @@
|
||||
"MetricGroup": "Summary;TmaL1",
|
||||
"MetricName": "Instructions"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Average number of Uops retired in cycles where at least one uop has retired.",
|
||||
"MetricExpr": "UOPS_RETIRED.RETIRE_SLOTS / cpu@UOPS_RETIRED.RETIRE_SLOTS\\,cmask\\=1@",
|
||||
"MetricGroup": "Pipeline;Ret",
|
||||
"MetricName": "Retire"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "",
|
||||
"MetricExpr": "UOPS_EXECUTED.THREAD / cpu@UOPS_EXECUTED.THREAD\\,cmask\\=1@",
|
||||
"MetricGroup": "Cor;Pipeline;PortsUtil;SMT",
|
||||
"MetricName": "Execute"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Fraction of Uops delivered by the DSB (aka Decoded ICache; or Uop Cache)",
|
||||
"MetricExpr": "IDQ.DSB_UOPS / (( IDQ.DSB_UOPS + LSD.UOPS + IDQ.MITE_UOPS + IDQ.MS_UOPS ) )",
|
||||
@ -203,11 +209,16 @@
|
||||
"MetricName": "DSB_Coverage"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Actual Average Latency for L1 data-cache miss demand load instructions (in core cycles)",
|
||||
"BriefDescription": "Number of Instructions per non-speculative Branch Misprediction (JEClear) (lower number means higher occurrence rate)",
|
||||
"MetricExpr": "INST_RETIRED.ANY / BR_MISP_RETIRED.ALL_BRANCHES",
|
||||
"MetricGroup": "Bad;BadSpec;BrMispredicts",
|
||||
"MetricName": "IpMispredict"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Actual Average Latency for L1 data-cache miss demand load operations (in core cycles)",
|
||||
"MetricExpr": "L1D_PEND_MISS.PENDING / ( MEM_LOAD_UOPS_RETIRED.L1_MISS + mem_load_uops_retired.hit_lfb )",
|
||||
"MetricGroup": "Mem;MemoryBound;MemoryLat",
|
||||
"MetricName": "Load_Miss_Real_Latency",
|
||||
"PublicDescription": "Actual Average Latency for L1 data-cache miss demand load instructions (in core cycles). Latency may be overestimated for multi-load instructions - e.g. repeat strings."
|
||||
"MetricName": "Load_Miss_Real_Latency"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Memory-Level-Parallelism (average number of L1 miss demand load when there is at least one such miss. Per-Logical Processor)",
|
||||
@ -215,24 +226,6 @@
|
||||
"MetricGroup": "Mem;MemoryBound;MemoryBW",
|
||||
"MetricName": "MLP"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Average data fill bandwidth to the L1 data cache [GB / sec]",
|
||||
"MetricExpr": "64 * L1D.REPLACEMENT / 1000000000 / duration_time",
|
||||
"MetricGroup": "Mem;MemoryBW",
|
||||
"MetricName": "L1D_Cache_Fill_BW"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Average data fill bandwidth to the L2 cache [GB / sec]",
|
||||
"MetricExpr": "64 * L2_LINES_IN.ALL / 1000000000 / duration_time",
|
||||
"MetricGroup": "Mem;MemoryBW",
|
||||
"MetricName": "L2_Cache_Fill_BW"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Average per-core data fill bandwidth to the L3 cache [GB / sec]",
|
||||
"MetricExpr": "64 * LONGEST_LAT_CACHE.MISS / 1000000000 / duration_time",
|
||||
"MetricGroup": "Mem;MemoryBW",
|
||||
"MetricName": "L3_Cache_Fill_BW"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "L1 cache true misses per kilo instruction for retired demand loads",
|
||||
"MetricExpr": "1000 * MEM_LOAD_UOPS_RETIRED.L1_MISS / INST_RETIRED.ANY",
|
||||
@ -264,6 +257,48 @@
|
||||
"MetricGroup": "Mem;MemoryTLB_SMT",
|
||||
"MetricName": "Page_Walks_Utilization_SMT"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Average per-core data fill bandwidth to the L1 data cache [GB / sec]",
|
||||
"MetricExpr": "64 * L1D.REPLACEMENT / 1000000000 / duration_time",
|
||||
"MetricGroup": "Mem;MemoryBW",
|
||||
"MetricName": "L1D_Cache_Fill_BW"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Average per-core data fill bandwidth to the L2 cache [GB / sec]",
|
||||
"MetricExpr": "64 * L2_LINES_IN.ALL / 1000000000 / duration_time",
|
||||
"MetricGroup": "Mem;MemoryBW",
|
||||
"MetricName": "L2_Cache_Fill_BW"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Average per-core data fill bandwidth to the L3 cache [GB / sec]",
|
||||
"MetricExpr": "64 * LONGEST_LAT_CACHE.MISS / 1000000000 / duration_time",
|
||||
"MetricGroup": "Mem;MemoryBW",
|
||||
"MetricName": "L3_Cache_Fill_BW"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Average per-thread data fill bandwidth to the L1 data cache [GB / sec]",
|
||||
"MetricExpr": "(64 * L1D.REPLACEMENT / 1000000000 / duration_time)",
|
||||
"MetricGroup": "Mem;MemoryBW",
|
||||
"MetricName": "L1D_Cache_Fill_BW_1T"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Average per-thread data fill bandwidth to the L2 cache [GB / sec]",
|
||||
"MetricExpr": "(64 * L2_LINES_IN.ALL / 1000000000 / duration_time)",
|
||||
"MetricGroup": "Mem;MemoryBW",
|
||||
"MetricName": "L2_Cache_Fill_BW_1T"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Average per-thread data fill bandwidth to the L3 cache [GB / sec]",
|
||||
"MetricExpr": "(64 * LONGEST_LAT_CACHE.MISS / 1000000000 / duration_time)",
|
||||
"MetricGroup": "Mem;MemoryBW",
|
||||
"MetricName": "L3_Cache_Fill_BW_1T"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Average per-thread data access bandwidth to the L3 cache [GB / sec]",
|
||||
"MetricExpr": "0",
|
||||
"MetricGroup": "Mem;MemoryBW;Offcore",
|
||||
"MetricName": "L3_Cache_Access_BW_1T"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Average CPU Utilization",
|
||||
"MetricExpr": "CPU_CLK_UNHALTED.REF_TSC / msr@tsc@",
|
||||
@ -280,7 +315,8 @@
|
||||
"BriefDescription": "Giga Floating Point Operations Per Second",
|
||||
"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",
|
||||
"MetricGroup": "Cor;Flops;HPC",
|
||||
"MetricName": "GFLOPs"
|
||||
"MetricName": "GFLOPs",
|
||||
"PublicDescription": "Giga Floating Point Operations Per Second. Aggregate across all supported options of: FP precisions, scalar and vector instructions, vector-width and AMX engine."
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Average Frequency Utilization relative nominal frequency",
|
||||
|
@ -500,4 +500,4 @@
|
||||
"SampleAfterValue": "100003",
|
||||
"UMask": "0x1"
|
||||
}
|
||||
]
|
||||
]
|
||||
|
@ -41,4 +41,4 @@
|
||||
"SampleAfterValue": "2000003",
|
||||
"UMask": "0x1"
|
||||
}
|
||||
]
|
||||
]
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
2411
tools/perf/pmu-events/arch/x86/ivytown/uncore-other.json
Normal file
2411
tools/perf/pmu-events/arch/x86/ivytown/uncore-other.json
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,176 +1,539 @@
|
||||
[
|
||||
{
|
||||
"BriefDescription": "PCU clock ticks. Use to get percentages of PCU cycles events",
|
||||
"BriefDescription": "pclk Cycles",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventName": "UNC_P_CLOCKTICKS",
|
||||
"PerPkg": "1",
|
||||
"PublicDescription": "The PCU runs off a fixed 800 MHz clock. This event counts the number of pclk cycles measured while the counter was enabled. The pclk, like the Memory Controller's dclk, counts at a constant rate making it a good measure of actual wall time.",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Counts the number of cycles that the uncore was running at a frequency greater than or equal to the frequency that is configured in the filter. (filter_band0=XXX, with XXX in 100Mhz units). One can also use inversion (filter_inv=1) to track cycles when we were less than the configured frequency",
|
||||
"BriefDescription": "Core 0 C State Transition Cycles",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0x70",
|
||||
"EventName": "UNC_P_CORE0_TRANSITION_CYCLES",
|
||||
"PerPkg": "1",
|
||||
"PublicDescription": "Number of cycles spent performing core C state transitions. There is one event per core.",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Core 10 C State Transition Cycles",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0x7a",
|
||||
"EventName": "UNC_P_CORE10_TRANSITION_CYCLES",
|
||||
"PerPkg": "1",
|
||||
"PublicDescription": "Number of cycles spent performing core C state transitions. There is one event per core.",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Core 11 C State Transition Cycles",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0x7b",
|
||||
"EventName": "UNC_P_CORE11_TRANSITION_CYCLES",
|
||||
"PerPkg": "1",
|
||||
"PublicDescription": "Number of cycles spent performing core C state transitions. There is one event per core.",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Core 12 C State Transition Cycles",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0x7c",
|
||||
"EventName": "UNC_P_CORE12_TRANSITION_CYCLES",
|
||||
"PerPkg": "1",
|
||||
"PublicDescription": "Number of cycles spent performing core C state transitions. There is one event per core.",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Core 13 C State Transition Cycles",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0x7d",
|
||||
"EventName": "UNC_P_CORE13_TRANSITION_CYCLES",
|
||||
"PerPkg": "1",
|
||||
"PublicDescription": "Number of cycles spent performing core C state transitions. There is one event per core.",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Core 14 C State Transition Cycles",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0x7e",
|
||||
"EventName": "UNC_P_CORE14_TRANSITION_CYCLES",
|
||||
"PerPkg": "1",
|
||||
"PublicDescription": "Number of cycles spent performing core C state transitions. There is one event per core.",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Core 1 C State Transition Cycles",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0x71",
|
||||
"EventName": "UNC_P_CORE1_TRANSITION_CYCLES",
|
||||
"PerPkg": "1",
|
||||
"PublicDescription": "Number of cycles spent performing core C state transitions. There is one event per core.",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Core 2 C State Transition Cycles",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0x72",
|
||||
"EventName": "UNC_P_CORE2_TRANSITION_CYCLES",
|
||||
"PerPkg": "1",
|
||||
"PublicDescription": "Number of cycles spent performing core C state transitions. There is one event per core.",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Core 3 C State Transition Cycles",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0x73",
|
||||
"EventName": "UNC_P_CORE3_TRANSITION_CYCLES",
|
||||
"PerPkg": "1",
|
||||
"PublicDescription": "Number of cycles spent performing core C state transitions. There is one event per core.",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Core 4 C State Transition Cycles",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0x74",
|
||||
"EventName": "UNC_P_CORE4_TRANSITION_CYCLES",
|
||||
"PerPkg": "1",
|
||||
"PublicDescription": "Number of cycles spent performing core C state transitions. There is one event per core.",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Core 5 C State Transition Cycles",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0x75",
|
||||
"EventName": "UNC_P_CORE5_TRANSITION_CYCLES",
|
||||
"PerPkg": "1",
|
||||
"PublicDescription": "Number of cycles spent performing core C state transitions. There is one event per core.",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Core 6 C State Transition Cycles",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0x76",
|
||||
"EventName": "UNC_P_CORE6_TRANSITION_CYCLES",
|
||||
"PerPkg": "1",
|
||||
"PublicDescription": "Number of cycles spent performing core C state transitions. There is one event per core.",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Core 7 C State Transition Cycles",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0x77",
|
||||
"EventName": "UNC_P_CORE7_TRANSITION_CYCLES",
|
||||
"PerPkg": "1",
|
||||
"PublicDescription": "Number of cycles spent performing core C state transitions. There is one event per core.",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Core 8 C State Transition Cycles",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0x78",
|
||||
"EventName": "UNC_P_CORE8_TRANSITION_CYCLES",
|
||||
"PerPkg": "1",
|
||||
"PublicDescription": "Number of cycles spent performing core C state transitions. There is one event per core.",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Core 9 C State Transition Cycles",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0x79",
|
||||
"EventName": "UNC_P_CORE9_TRANSITION_CYCLES",
|
||||
"PerPkg": "1",
|
||||
"PublicDescription": "Number of cycles spent performing core C state transitions. There is one event per core.",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Deep C State Rejection - Core 0",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0x17",
|
||||
"EventName": "UNC_P_DELAYED_C_STATE_ABORT_CORE0",
|
||||
"ExtSel": "1",
|
||||
"PerPkg": "1",
|
||||
"PublicDescription": "Number of times that a deep C state was requested, but the delayed C state algorithm rejected the deep sleep state. In other words, a wake event occurred before the timer expired that causes a transition into the deeper C state.",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Deep C State Rejection - Core 1",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0x18",
|
||||
"EventName": "UNC_P_DELAYED_C_STATE_ABORT_CORE1",
|
||||
"ExtSel": "1",
|
||||
"PerPkg": "1",
|
||||
"PublicDescription": "Number of times that a deep C state was requested, but the delayed C state algorithm rejected the deep sleep state. In other words, a wake event occurred before the timer expired that causes a transition into the deeper C state.",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Deep C State Rejection - Core 10",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0x21",
|
||||
"EventName": "UNC_P_DELAYED_C_STATE_ABORT_CORE10",
|
||||
"ExtSel": "1",
|
||||
"PerPkg": "1",
|
||||
"PublicDescription": "Number of times that a deep C state was requested, but the delayed C state algorithm rejected the deep sleep state. In other words, a wake event occurred before the timer expired that causes a transition into the deeper C state.",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Deep C State Rejection - Core 11",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0x22",
|
||||
"EventName": "UNC_P_DELAYED_C_STATE_ABORT_CORE11",
|
||||
"ExtSel": "1",
|
||||
"PerPkg": "1",
|
||||
"PublicDescription": "Number of times that a deep C state was requested, but the delayed C state algorithm rejected the deep sleep state. In other words, a wake event occurred before the timer expired that causes a transition into the deeper C state.",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Deep C State Rejection - Core 12",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0x23",
|
||||
"EventName": "UNC_P_DELAYED_C_STATE_ABORT_CORE12",
|
||||
"ExtSel": "1",
|
||||
"PerPkg": "1",
|
||||
"PublicDescription": "Number of times that a deep C state was requested, but the delayed C state algorithm rejected the deep sleep state. In other words, a wake event occurred before the timer expired that causes a transition into the deeper C state.",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Deep C State Rejection - Core 13",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0x24",
|
||||
"EventName": "UNC_P_DELAYED_C_STATE_ABORT_CORE13",
|
||||
"ExtSel": "1",
|
||||
"PerPkg": "1",
|
||||
"PublicDescription": "Number of times that a deep C state was requested, but the delayed C state algorithm rejected the deep sleep state. In other words, a wake event occurred before the timer expired that causes a transition into the deeper C state.",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Deep C State Rejection - Core 14",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0x25",
|
||||
"EventName": "UNC_P_DELAYED_C_STATE_ABORT_CORE14",
|
||||
"ExtSel": "1",
|
||||
"PerPkg": "1",
|
||||
"PublicDescription": "Number of times that a deep C state was requested, but the delayed C state algorithm rejected the deep sleep state. In other words, a wake event occurred before the timer expired that causes a transition into the deeper C state.",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Deep C State Rejection - Core 2",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0x19",
|
||||
"EventName": "UNC_P_DELAYED_C_STATE_ABORT_CORE2",
|
||||
"ExtSel": "1",
|
||||
"PerPkg": "1",
|
||||
"PublicDescription": "Number of times that a deep C state was requested, but the delayed C state algorithm rejected the deep sleep state. In other words, a wake event occurred before the timer expired that causes a transition into the deeper C state.",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Deep C State Rejection - Core 3",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0x1a",
|
||||
"EventName": "UNC_P_DELAYED_C_STATE_ABORT_CORE3",
|
||||
"ExtSel": "1",
|
||||
"PerPkg": "1",
|
||||
"PublicDescription": "Number of times that a deep C state was requested, but the delayed C state algorithm rejected the deep sleep state. In other words, a wake event occurred before the timer expired that causes a transition into the deeper C state.",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Deep C State Rejection - Core 4",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0x1b",
|
||||
"EventName": "UNC_P_DELAYED_C_STATE_ABORT_CORE4",
|
||||
"ExtSel": "1",
|
||||
"PerPkg": "1",
|
||||
"PublicDescription": "Number of times that a deep C state was requested, but the delayed C state algorithm rejected the deep sleep state. In other words, a wake event occurred before the timer expired that causes a transition into the deeper C state.",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Deep C State Rejection - Core 5",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0x1c",
|
||||
"EventName": "UNC_P_DELAYED_C_STATE_ABORT_CORE5",
|
||||
"ExtSel": "1",
|
||||
"PerPkg": "1",
|
||||
"PublicDescription": "Number of times that a deep C state was requested, but the delayed C state algorithm rejected the deep sleep state. In other words, a wake event occurred before the timer expired that causes a transition into the deeper C state.",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Deep C State Rejection - Core 6",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0x1d",
|
||||
"EventName": "UNC_P_DELAYED_C_STATE_ABORT_CORE6",
|
||||
"ExtSel": "1",
|
||||
"PerPkg": "1",
|
||||
"PublicDescription": "Number of times that a deep C state was requested, but the delayed C state algorithm rejected the deep sleep state. In other words, a wake event occurred before the timer expired that causes a transition into the deeper C state.",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Deep C State Rejection - Core 7",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0x1e",
|
||||
"EventName": "UNC_P_DELAYED_C_STATE_ABORT_CORE7",
|
||||
"ExtSel": "1",
|
||||
"PerPkg": "1",
|
||||
"PublicDescription": "Number of times that a deep C state was requested, but the delayed C state algorithm rejected the deep sleep state. In other words, a wake event occurred before the timer expired that causes a transition into the deeper C state.",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Deep C State Rejection - Core 8",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0x1f",
|
||||
"EventName": "UNC_P_DELAYED_C_STATE_ABORT_CORE8",
|
||||
"ExtSel": "1",
|
||||
"PerPkg": "1",
|
||||
"PublicDescription": "Number of times that a deep C state was requested, but the delayed C state algorithm rejected the deep sleep state. In other words, a wake event occurred before the timer expired that causes a transition into the deeper C state.",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Deep C State Rejection - Core 9",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0x20",
|
||||
"EventName": "UNC_P_DELAYED_C_STATE_ABORT_CORE9",
|
||||
"ExtSel": "1",
|
||||
"PerPkg": "1",
|
||||
"PublicDescription": "Number of times that a deep C state was requested, but the delayed C state algorithm rejected the deep sleep state. In other words, a wake event occurred before the timer expired that causes a transition into the deeper C state.",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Core 0 C State Demotions",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0x1e",
|
||||
"EventName": "UNC_P_DEMOTIONS_CORE0",
|
||||
"Filter": "PCUFilter[7:0]",
|
||||
"PerPkg": "1",
|
||||
"PublicDescription": "Counts the number of times when a configurable cores had a C-state demotion",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Core 1 C State Demotions",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0x1f",
|
||||
"EventName": "UNC_P_DEMOTIONS_CORE1",
|
||||
"Filter": "PCUFilter[7:0]",
|
||||
"PerPkg": "1",
|
||||
"PublicDescription": "Counts the number of times when a configurable cores had a C-state demotion",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Core 10 C State Demotions",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0x42",
|
||||
"EventName": "UNC_P_DEMOTIONS_CORE10",
|
||||
"Filter": "PCUFilter[7:0]",
|
||||
"PerPkg": "1",
|
||||
"PublicDescription": "Counts the number of times when a configurable cores had a C-state demotion",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Core 11 C State Demotions",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0x43",
|
||||
"EventName": "UNC_P_DEMOTIONS_CORE11",
|
||||
"Filter": "PCUFilter[7:0]",
|
||||
"PerPkg": "1",
|
||||
"PublicDescription": "Counts the number of times when a configurable cores had a C-state demotion",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Core 12 C State Demotions",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0x44",
|
||||
"EventName": "UNC_P_DEMOTIONS_CORE12",
|
||||
"Filter": "PCUFilter[7:0]",
|
||||
"PerPkg": "1",
|
||||
"PublicDescription": "Counts the number of times when a configurable cores had a C-state demotion",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Core 13 C State Demotions",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0x45",
|
||||
"EventName": "UNC_P_DEMOTIONS_CORE13",
|
||||
"Filter": "PCUFilter[7:0]",
|
||||
"PerPkg": "1",
|
||||
"PublicDescription": "Counts the number of times when a configurable cores had a C-state demotion",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Core 14 C State Demotions",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0x46",
|
||||
"EventName": "UNC_P_DEMOTIONS_CORE14",
|
||||
"Filter": "PCUFilter[7:0]",
|
||||
"PerPkg": "1",
|
||||
"PublicDescription": "Counts the number of times when a configurable cores had a C-state demotion",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Core 2 C State Demotions",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0x20",
|
||||
"EventName": "UNC_P_DEMOTIONS_CORE2",
|
||||
"Filter": "PCUFilter[7:0]",
|
||||
"PerPkg": "1",
|
||||
"PublicDescription": "Counts the number of times when a configurable cores had a C-state demotion",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Core 3 C State Demotions",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0x21",
|
||||
"EventName": "UNC_P_DEMOTIONS_CORE3",
|
||||
"Filter": "PCUFilter[7:0]",
|
||||
"PerPkg": "1",
|
||||
"PublicDescription": "Counts the number of times when a configurable cores had a C-state demotion",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Core 4 C State Demotions",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0x22",
|
||||
"EventName": "UNC_P_DEMOTIONS_CORE4",
|
||||
"Filter": "PCUFilter[7:0]",
|
||||
"PerPkg": "1",
|
||||
"PublicDescription": "Counts the number of times when a configurable cores had a C-state demotion",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Core 5 C State Demotions",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0x23",
|
||||
"EventName": "UNC_P_DEMOTIONS_CORE5",
|
||||
"Filter": "PCUFilter[7:0]",
|
||||
"PerPkg": "1",
|
||||
"PublicDescription": "Counts the number of times when a configurable cores had a C-state demotion",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Core 6 C State Demotions",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0x24",
|
||||
"EventName": "UNC_P_DEMOTIONS_CORE6",
|
||||
"Filter": "PCUFilter[7:0]",
|
||||
"PerPkg": "1",
|
||||
"PublicDescription": "Counts the number of times when a configurable cores had a C-state demotion",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Core 7 C State Demotions",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0x25",
|
||||
"EventName": "UNC_P_DEMOTIONS_CORE7",
|
||||
"Filter": "PCUFilter[7:0]",
|
||||
"PerPkg": "1",
|
||||
"PublicDescription": "Counts the number of times when a configurable cores had a C-state demotion",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Core 8 C State Demotions",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0x40",
|
||||
"EventName": "UNC_P_DEMOTIONS_CORE8",
|
||||
"Filter": "PCUFilter[7:0]",
|
||||
"PerPkg": "1",
|
||||
"PublicDescription": "Counts the number of times when a configurable cores had a C-state demotion",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Core 9 C State Demotions",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0x41",
|
||||
"EventName": "UNC_P_DEMOTIONS_CORE9",
|
||||
"Filter": "PCUFilter[7:0]",
|
||||
"PerPkg": "1",
|
||||
"PublicDescription": "Counts the number of times when a configurable cores had a C-state demotion",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Frequency Residency",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0xb",
|
||||
"EventName": "UNC_P_FREQ_BAND0_CYCLES",
|
||||
"MetricExpr": "(UNC_P_FREQ_BAND0_CYCLES / UNC_P_CLOCKTICKS) * 100.",
|
||||
"MetricName": "freq_band0_cycles %",
|
||||
"Filter": "PCUFilter[7:0]",
|
||||
"PerPkg": "1",
|
||||
"PublicDescription": "Counts the number of cycles that the uncore was running at a frequency greater than or equal to the frequency that is configured in the filter. One can use all four counters with this event, so it is possible to track up to 4 configurable bands. One can use edge detect in conjunction with this event to track the number of times that we transitioned into a frequency greater than or equal to the configurable frequency. One can also use inversion to track cycles when we were less than the configured frequency.",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Counts the number of cycles that the uncore was running at a frequency greater than or equal to the frequency that is configured in the filter. (filter_band1=XXX, with XXX in 100Mhz units). One can also use inversion (filter_inv=1) to track cycles when we were less than the configured frequency",
|
||||
"BriefDescription": "Frequency Residency",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0xc",
|
||||
"EventName": "UNC_P_FREQ_BAND1_CYCLES",
|
||||
"MetricExpr": "(UNC_P_FREQ_BAND1_CYCLES / UNC_P_CLOCKTICKS) * 100.",
|
||||
"MetricName": "freq_band1_cycles %",
|
||||
"Filter": "PCUFilter[15:8]",
|
||||
"PerPkg": "1",
|
||||
"PublicDescription": "Counts the number of cycles that the uncore was running at a frequency greater than or equal to the frequency that is configured in the filter. One can use all four counters with this event, so it is possible to track up to 4 configurable bands. One can use edge detect in conjunction with this event to track the number of times that we transitioned into a frequency greater than or equal to the configurable frequency. One can also use inversion to track cycles when we were less than the configured frequency.",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Counts the number of cycles that the uncore was running at a frequency greater than or equal to the frequency that is configured in the filter. (filter_band2=XXX, with XXX in 100Mhz units). One can also use inversion (filter_inv=1) to track cycles when we were less than the configured frequency",
|
||||
"BriefDescription": "Frequency Residency",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0xd",
|
||||
"EventName": "UNC_P_FREQ_BAND2_CYCLES",
|
||||
"MetricExpr": "(UNC_P_FREQ_BAND2_CYCLES / UNC_P_CLOCKTICKS) * 100.",
|
||||
"MetricName": "freq_band2_cycles %",
|
||||
"Filter": "PCUFilter[23:16]",
|
||||
"PerPkg": "1",
|
||||
"PublicDescription": "Counts the number of cycles that the uncore was running at a frequency greater than or equal to the frequency that is configured in the filter. One can use all four counters with this event, so it is possible to track up to 4 configurable bands. One can use edge detect in conjunction with this event to track the number of times that we transitioned into a frequency greater than or equal to the configurable frequency. One can also use inversion to track cycles when we were less than the configured frequency.",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Counts the number of cycles that the uncore was running at a frequency greater than or equal to the frequency that is configured in the filter. (filter_band3=XXX, with XXX in 100Mhz units). One can also use inversion (filter_inv=1) to track cycles when we were less than the configured frequency",
|
||||
"BriefDescription": "Frequency Residency",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0xe",
|
||||
"EventName": "UNC_P_FREQ_BAND3_CYCLES",
|
||||
"MetricExpr": "(UNC_P_FREQ_BAND3_CYCLES / UNC_P_CLOCKTICKS) * 100.",
|
||||
"MetricName": "freq_band3_cycles %",
|
||||
"Filter": "PCUFilter[31:24]",
|
||||
"PerPkg": "1",
|
||||
"PublicDescription": "Counts the number of cycles that the uncore was running at a frequency greater than or equal to the frequency that is configured in the filter. One can use all four counters with this event, so it is possible to track up to 4 configurable bands. One can use edge detect in conjunction with this event to track the number of times that we transitioned into a frequency greater than or equal to the configurable frequency. One can also use inversion to track cycles when we were less than the configured frequency.",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Counts the number of times that the uncore transitioned a frequency greater than or equal to the frequency that is configured in the filter. (filter_band0=XXX, with XXX in 100Mhz units). One can also use inversion (filter_inv=1) to track cycles when we were less than the configured frequency. Derived from unc_p_freq_band0_cycles",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0xb",
|
||||
"EventName": "UNC_P_FREQ_BAND0_TRANSITIONS",
|
||||
"Filter": "edge=1",
|
||||
"MetricExpr": "(UNC_P_FREQ_BAND0_CYCLES / UNC_P_CLOCKTICKS) * 100.",
|
||||
"MetricName": "freq_band0_cycles %",
|
||||
"PerPkg": "1",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Counts the number of times that the uncore transitioned to a frequency greater than or equal to the frequency that is configured in the filter. (filter_band1=XXX, with XXX in 100Mhz units). One can also use inversion (filter_inv=1) to track cycles when we were less than the configured frequency. Derived from unc_p_freq_band1_cycles",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0xc",
|
||||
"EventName": "UNC_P_FREQ_BAND1_TRANSITIONS",
|
||||
"Filter": "edge=1",
|
||||
"MetricExpr": "(UNC_P_FREQ_BAND1_CYCLES / UNC_P_CLOCKTICKS) * 100.",
|
||||
"MetricName": "freq_band1_cycles %",
|
||||
"PerPkg": "1",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Counts the number of cycles that the uncore transitioned to a frequency greater than or equal to the frequency that is configured in the filter. (filter_band2=XXX, with XXX in 100Mhz units). One can also use inversion (filter_inv=1) to track cycles when we were less than the configured frequency. Derived from unc_p_freq_band2_cycles",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0xd",
|
||||
"EventName": "UNC_P_FREQ_BAND2_TRANSITIONS",
|
||||
"Filter": "edge=1",
|
||||
"MetricExpr": "(UNC_P_FREQ_BAND2_CYCLES / UNC_P_CLOCKTICKS) * 100.",
|
||||
"MetricName": "freq_band2_cycles %",
|
||||
"PerPkg": "1",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Counts the number of cycles that the uncore transitioned to a frequency greater than or equal to the frequency that is configured in the filter. (filter_band3=XXX, with XXX in 100Mhz units). One can also use inversion (filter_inv=1) to track cycles when we were less than the configured frequency. Derived from unc_p_freq_band3_cycles",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0xe",
|
||||
"EventName": "UNC_P_FREQ_BAND3_TRANSITIONS",
|
||||
"Filter": "edge=1",
|
||||
"MetricExpr": "(UNC_P_FREQ_BAND3_CYCLES / UNC_P_CLOCKTICKS) * 100.",
|
||||
"MetricName": "freq_band3_cycles %",
|
||||
"PerPkg": "1",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "This is an occupancy event that tracks the number of cores that are in C0. It can be used by itself to get the average number of cores in C0, with threshholding to generate histograms, or with other PCU events and occupancy triggering to capture other details",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0x80",
|
||||
"EventName": "UNC_P_POWER_STATE_OCCUPANCY.CORES_C0",
|
||||
"Filter": "occ_sel=1",
|
||||
"MetricExpr": "(UNC_P_POWER_STATE_OCCUPANCY.CORES_C0 / UNC_P_CLOCKTICKS) * 100.",
|
||||
"MetricName": "power_state_occupancy.cores_c0 %",
|
||||
"PerPkg": "1",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "This is an occupancy event that tracks the number of cores that are in C3. It can be used by itself to get the average number of cores in C0, with threshholding to generate histograms, or with other PCU events and occupancy triggering to capture other details",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0x80",
|
||||
"EventName": "UNC_P_POWER_STATE_OCCUPANCY.CORES_C3",
|
||||
"Filter": "occ_sel=2",
|
||||
"MetricExpr": "(UNC_P_POWER_STATE_OCCUPANCY.CORES_C3 / UNC_P_CLOCKTICKS) * 100.",
|
||||
"MetricName": "power_state_occupancy.cores_c3 %",
|
||||
"PerPkg": "1",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "This is an occupancy event that tracks the number of cores that are in C6. It can be used by itself to get the average number of cores in C0, with threshholding to generate histograms, or with other PCU events ",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0x80",
|
||||
"EventName": "UNC_P_POWER_STATE_OCCUPANCY.CORES_C6",
|
||||
"Filter": "occ_sel=3",
|
||||
"MetricExpr": "(UNC_P_POWER_STATE_OCCUPANCY.CORES_C6 / UNC_P_CLOCKTICKS) * 100.",
|
||||
"MetricName": "power_state_occupancy.cores_c6 %",
|
||||
"PerPkg": "1",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Counts the number of cycles that we are in external PROCHOT mode. This mode is triggered when a sensor off the die determines that something off-die (like DRAM) is too hot and must throttle to avoid damaging the chip",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0xa",
|
||||
"EventName": "UNC_P_PROCHOT_EXTERNAL_CYCLES",
|
||||
"MetricExpr": "(UNC_P_PROCHOT_EXTERNAL_CYCLES / UNC_P_CLOCKTICKS) * 100.",
|
||||
"MetricName": "prochot_external_cycles %",
|
||||
"PerPkg": "1",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Counts the number of cycles when temperature is the upper limit on frequency",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0x4",
|
||||
"EventName": "UNC_P_FREQ_MAX_LIMIT_THERMAL_CYCLES",
|
||||
"MetricExpr": "(UNC_P_FREQ_MAX_LIMIT_THERMAL_CYCLES / UNC_P_CLOCKTICKS) * 100.",
|
||||
"MetricName": "freq_max_limit_thermal_cycles %",
|
||||
"PerPkg": "1",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Counts the number of cycles when the OS is the upper limit on frequency",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0x6",
|
||||
"EventName": "UNC_P_FREQ_MAX_OS_CYCLES",
|
||||
"MetricExpr": "(UNC_P_FREQ_MAX_OS_CYCLES / UNC_P_CLOCKTICKS) * 100.",
|
||||
"MetricName": "freq_max_os_cycles %",
|
||||
"PerPkg": "1",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Counts the number of cycles when power is the upper limit on frequency",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0x5",
|
||||
"EventName": "UNC_P_FREQ_MAX_POWER_CYCLES",
|
||||
"MetricExpr": "(UNC_P_FREQ_MAX_POWER_CYCLES / UNC_P_CLOCKTICKS) * 100.",
|
||||
"MetricName": "freq_max_power_cycles %",
|
||||
"PerPkg": "1",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Counts the number of cycles when current is the upper limit on frequency",
|
||||
"BriefDescription": "Current Strongest Upper Limit Cycles",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0x7",
|
||||
"EventName": "UNC_P_FREQ_MAX_CURRENT_CYCLES",
|
||||
"MetricExpr": "(UNC_P_FREQ_MAX_CURRENT_CYCLES / UNC_P_CLOCKTICKS) * 100.",
|
||||
"MetricName": "freq_max_current_cycles %",
|
||||
"PerPkg": "1",
|
||||
"PublicDescription": "Counts the number of cycles when current is the upper limit on frequency.",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Thermal Strongest Upper Limit Cycles",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0x4",
|
||||
"EventName": "UNC_P_FREQ_MAX_LIMIT_THERMAL_CYCLES",
|
||||
"PerPkg": "1",
|
||||
"PublicDescription": "Counts the number of cycles when thermal conditions are the upper limit on frequency. This is related to the THERMAL_THROTTLE CYCLES_ABOVE_TEMP event, which always counts cycles when we are above the thermal temperature. This event (STRONGEST_UPPER_LIMIT) is sampled at the output of the algorithm that determines the actual frequency, while THERMAL_THROTTLE looks at the input.",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "OS Strongest Upper Limit Cycles",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0x6",
|
||||
"EventName": "UNC_P_FREQ_MAX_OS_CYCLES",
|
||||
"PerPkg": "1",
|
||||
"PublicDescription": "Counts the number of cycles when the OS is the upper limit on frequency.",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Power Strongest Upper Limit Cycles",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0x5",
|
||||
"EventName": "UNC_P_FREQ_MAX_POWER_CYCLES",
|
||||
"PerPkg": "1",
|
||||
"PublicDescription": "Counts the number of cycles when power is the upper limit on frequency.",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "IO P Limit Strongest Lower Limit Cycles",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0x61",
|
||||
"EventName": "UNC_P_FREQ_MIN_IO_P_CYCLES",
|
||||
"PerPkg": "1",
|
||||
"PublicDescription": "Counts the number of cycles when IO P Limit is preventing us from dropping the frequency lower. This algorithm monitors the needs to the IO subsystem on both local and remote sockets and will maintain a frequency high enough to maintain good IO BW. This is necessary for when all the IA cores on a socket are idle but a user still would like to maintain high IO Bandwidth.",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Perf P Limit Strongest Lower Limit Cycles",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0x62",
|
||||
"EventName": "UNC_P_FREQ_MIN_PERF_P_CYCLES",
|
||||
"PerPkg": "1",
|
||||
"PublicDescription": "Counts the number of cycles when Perf P Limit is preventing us from dropping the frequency lower. Perf P Limit is an algorithm that takes input from remote sockets when determining if a socket should drop it's frequency down. This is largely to minimize increases in snoop and remote read latencies.",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
@ -178,96 +541,165 @@
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0x60",
|
||||
"EventName": "UNC_P_FREQ_TRANS_CYCLES",
|
||||
"MetricExpr": "(UNC_P_FREQ_TRANS_CYCLES / UNC_P_CLOCKTICKS) * 100.",
|
||||
"MetricName": "freq_trans_cycles %",
|
||||
"PerPkg": "1",
|
||||
"PublicDescription": "Counts the number of cycles when the system is changing frequency. This can not be filtered by thread ID. One can also use it with the occupancy counter that monitors number of threads in C0 to estimate the performance impact that frequency transitions had on the system.",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Counts the number of cycles that the uncore was running at a frequency greater than or equal to 1.2Ghz. Derived from unc_p_freq_band0_cycles",
|
||||
"BriefDescription": "Memory Phase Shedding Cycles",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0xb",
|
||||
"EventName": "UNC_P_FREQ_GE_1200MHZ_CYCLES",
|
||||
"Filter": "filter_band0=12",
|
||||
"MetricExpr": "(UNC_P_FREQ_GE_1200MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.",
|
||||
"MetricName": "freq_ge_1200mhz_cycles %",
|
||||
"EventCode": "0x2f",
|
||||
"EventName": "UNC_P_MEMORY_PHASE_SHEDDING_CYCLES",
|
||||
"PerPkg": "1",
|
||||
"PublicDescription": "Counts the number of cycles that the PCU has triggered memory phase shedding. This is a mode that can be run in the iMC physicals that saves power at the expense of additional latency.",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Counts the number of cycles that the uncore was running at a frequency greater than or equal to 2Ghz. Derived from unc_p_freq_band1_cycles",
|
||||
"BriefDescription": "Package C State Exit Latency",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0xc",
|
||||
"EventName": "UNC_P_FREQ_GE_2000MHZ_CYCLES",
|
||||
"Filter": "filter_band1=20",
|
||||
"MetricExpr": "(UNC_P_FREQ_GE_2000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.",
|
||||
"MetricName": "freq_ge_2000mhz_cycles %",
|
||||
"EventCode": "0x26",
|
||||
"EventName": "UNC_P_PKG_C_EXIT_LATENCY",
|
||||
"ExtSel": "1",
|
||||
"PerPkg": "1",
|
||||
"PublicDescription": "Counts the number of cycles that the package is transitioning from package C2 to C3.",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Counts the number of cycles that the uncore was running at a frequency greater than or equal to 3Ghz. Derived from unc_p_freq_band2_cycles",
|
||||
"BriefDescription": "Package C State Exit Latency",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0xd",
|
||||
"EventName": "UNC_P_FREQ_GE_3000MHZ_CYCLES",
|
||||
"Filter": "filter_band2=30",
|
||||
"MetricExpr": "(UNC_P_FREQ_GE_3000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.",
|
||||
"MetricName": "freq_ge_3000mhz_cycles %",
|
||||
"EventCode": "0x26",
|
||||
"EventName": "UNC_P_PKG_C_EXIT_LATENCY_SEL",
|
||||
"ExtSel": "1",
|
||||
"PerPkg": "1",
|
||||
"PublicDescription": "Counts the number of cycles that the package is transitioning from package C2 to C3.",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Counts the number of cycles that the uncore was running at a frequency greater than or equal to 4Ghz. Derived from unc_p_freq_band3_cycles",
|
||||
"BriefDescription": "Package C State Residency - C0",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0xe",
|
||||
"EventName": "UNC_P_FREQ_GE_4000MHZ_CYCLES",
|
||||
"Filter": "filter_band3=40",
|
||||
"MetricExpr": "(UNC_P_FREQ_GE_4000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.",
|
||||
"MetricName": "freq_ge_4000mhz_cycles %",
|
||||
"EventCode": "0x2a",
|
||||
"EventName": "UNC_P_PKG_C_STATE_RESIDENCY_C0_CYCLES",
|
||||
"ExtSel": "1",
|
||||
"PerPkg": "1",
|
||||
"PublicDescription": "Counts the number of cycles that the package is in C0",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Counts the number of times that the uncore transitioned to a frequency greater than or equal to 1.2Ghz. Derived from unc_p_freq_band0_cycles",
|
||||
"BriefDescription": "Package C State Residency - C2",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0xb",
|
||||
"EventName": "UNC_P_FREQ_GE_1200MHZ_TRANSITIONS",
|
||||
"Filter": "edge=1,filter_band0=12",
|
||||
"MetricExpr": "(UNC_P_FREQ_GE_1200MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.",
|
||||
"MetricName": "freq_ge_1200mhz_cycles %",
|
||||
"EventCode": "0x2b",
|
||||
"EventName": "UNC_P_PKG_C_STATE_RESIDENCY_C2_CYCLES",
|
||||
"ExtSel": "1",
|
||||
"PerPkg": "1",
|
||||
"PublicDescription": "Counts the number of cycles that the package is in C2",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Counts the number of times that the uncore transitioned to a frequency greater than or equal to 2Ghz. Derived from unc_p_freq_band1_cycles",
|
||||
"BriefDescription": "Package C State Residency - C3",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0xc",
|
||||
"EventName": "UNC_P_FREQ_GE_2000MHZ_TRANSITIONS",
|
||||
"Filter": "edge=1,filter_band1=20",
|
||||
"MetricExpr": "(UNC_P_FREQ_GE_2000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.",
|
||||
"MetricName": "freq_ge_2000mhz_cycles %",
|
||||
"EventCode": "0x2c",
|
||||
"EventName": "UNC_P_PKG_C_STATE_RESIDENCY_C3_CYCLES",
|
||||
"ExtSel": "1",
|
||||
"PerPkg": "1",
|
||||
"PublicDescription": "Counts the number of cycles that the package is in C3",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Counts the number of cycles that the uncore transitioned to a frequency greater than or equal to 3Ghz. Derived from unc_p_freq_band2_cycles",
|
||||
"BriefDescription": "Package C State Residency - C6",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0xd",
|
||||
"EventName": "UNC_P_FREQ_GE_3000MHZ_TRANSITIONS",
|
||||
"Filter": "edge=1,filter_band2=30",
|
||||
"MetricExpr": "(UNC_P_FREQ_GE_3000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.",
|
||||
"MetricName": "freq_ge_3000mhz_cycles %",
|
||||
"EventCode": "0x2d",
|
||||
"EventName": "UNC_P_PKG_C_STATE_RESIDENCY_C6_CYCLES",
|
||||
"ExtSel": "1",
|
||||
"PerPkg": "1",
|
||||
"PublicDescription": "Counts the number of cycles that the package is in C6",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Counts the number of cycles that the uncore transitioned to a frequency greater than or equal to 4Ghz. Derived from unc_p_freq_band3_cycles",
|
||||
"BriefDescription": "Number of cores in C-State; C0 and C1",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0xe",
|
||||
"EventName": "UNC_P_FREQ_GE_4000MHZ_TRANSITIONS",
|
||||
"Filter": "edge=1,filter_band3=40",
|
||||
"MetricExpr": "(UNC_P_FREQ_GE_4000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.",
|
||||
"MetricName": "freq_ge_4000mhz_cycles %",
|
||||
"EventCode": "0x80",
|
||||
"EventName": "UNC_P_POWER_STATE_OCCUPANCY.CORES_C0",
|
||||
"PerPkg": "1",
|
||||
"PublicDescription": "This is an occupancy event that tracks the number of cores that are in the chosen C-State. It can be used by itself to get the average number of cores in that C-state with threshholding to generate histograms, or with other PCU events and occupancy triggering to capture other details.",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Number of cores in C-State; C3",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0x80",
|
||||
"EventName": "UNC_P_POWER_STATE_OCCUPANCY.CORES_C3",
|
||||
"PerPkg": "1",
|
||||
"PublicDescription": "This is an occupancy event that tracks the number of cores that are in the chosen C-State. It can be used by itself to get the average number of cores in that C-state with threshholding to generate histograms, or with other PCU events and occupancy triggering to capture other details.",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Number of cores in C-State; C6 and C7",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0x80",
|
||||
"EventName": "UNC_P_POWER_STATE_OCCUPANCY.CORES_C6",
|
||||
"PerPkg": "1",
|
||||
"PublicDescription": "This is an occupancy event that tracks the number of cores that are in the chosen C-State. It can be used by itself to get the average number of cores in that C-state with threshholding to generate histograms, or with other PCU events and occupancy triggering to capture other details.",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "External Prochot",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0xa",
|
||||
"EventName": "UNC_P_PROCHOT_EXTERNAL_CYCLES",
|
||||
"PerPkg": "1",
|
||||
"PublicDescription": "Counts the number of cycles that we are in external PROCHOT mode. This mode is triggered when a sensor off the die determines that something off-die (like DRAM) is too hot and must throttle to avoid damaging the chip.",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Internal Prochot",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0x9",
|
||||
"EventName": "UNC_P_PROCHOT_INTERNAL_CYCLES",
|
||||
"PerPkg": "1",
|
||||
"PublicDescription": "Counts the number of cycles that we are in Interal PROCHOT mode. This mode is triggered when a sensor on the die determines that we are too hot and must throttle to avoid damaging the chip.",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Total Core C State Transition Cycles",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0x63",
|
||||
"EventName": "UNC_P_TOTAL_TRANSITION_CYCLES",
|
||||
"PerPkg": "1",
|
||||
"PublicDescription": "Number of cycles spent performing core C state transitions across all cores.",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Cycles Changing Voltage",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0x3",
|
||||
"EventName": "UNC_P_VOLT_TRANS_CYCLES_CHANGE",
|
||||
"PerPkg": "1",
|
||||
"PublicDescription": "Counts the number of cycles when the system is changing voltage. There is no filtering supported with this event. One can use it as a simple event, or use it conjunction with the occupancy events to monitor the number of cores or threads that were impacted by the transition. This event is calculated by or'ing together the increasing and decreasing events.",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Cycles Decreasing Voltage",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0x2",
|
||||
"EventName": "UNC_P_VOLT_TRANS_CYCLES_DECREASE",
|
||||
"PerPkg": "1",
|
||||
"PublicDescription": "Counts the number of cycles when the system is decreasing voltage. There is no filtering supported with this event. One can use it as a simple event, or use it conjunction with the occupancy events to monitor the number of cores or threads that were impacted by the transition.",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "Cycles Increasing Voltage",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0x1",
|
||||
"EventName": "UNC_P_VOLT_TRANS_CYCLES_INCREASE",
|
||||
"PerPkg": "1",
|
||||
"PublicDescription": "Counts the number of cycles when the system is increasing voltage. There is no filtering supported with this event. One can use it as a simple event, or use it conjunction with the occupancy events to monitor the number of cores or threads that were impacted by the transition.",
|
||||
"Unit": "PCU"
|
||||
},
|
||||
{
|
||||
"BriefDescription": "VR Hot",
|
||||
"Counter": "0,1,2,3",
|
||||
"EventCode": "0x32",
|
||||
"EventName": "UNC_P_VR_HOT_CYCLES",
|
||||
"PerPkg": "1",
|
||||
"Unit": "PCU"
|
||||
}
|
||||
|
@ -195,4 +195,4 @@
|
||||
"SampleAfterValue": "100007",
|
||||
"UMask": "0x20"
|
||||
}
|
||||
]
|
||||
]
|
||||
|
@ -13,7 +13,7 @@ GenuineIntel-6-3F,v25,haswellx,core
|
||||
GenuineIntel-6-(7D|7E|A7),v1.14,icelake,core
|
||||
GenuineIntel-6-6[AC],v1.15,icelakex,core
|
||||
GenuineIntel-6-3A,v22,ivybridge,core
|
||||
GenuineIntel-6-3E,v19,ivytown,core
|
||||
GenuineIntel-6-3E,v21,ivytown,core
|
||||
GenuineIntel-6-2D,v20,jaketown,core
|
||||
GenuineIntel-6-57,v9,knightslanding,core
|
||||
GenuineIntel-6-85,v9,knightslanding,core
|
||||
|
|
Loading…
Reference in New Issue
Block a user