forked from microsoft/WSL2-Linux-Kernel
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
perf vendor events: Add JSON metrics for Cascadelake server
Add JSON metrics (based on event list v1) for Cascadelake server Signed-off-by: Kan Liang <kan.liang@linux.intel.com> Acked-by: Jiri Olsa <jolsa@kernel.org> Cc: Andi Kleen <ak@linux.intel.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Peter Zijlstra <peterz@infradead.org> Link: http://lkml.kernel.org/r/3ab97c73-c197-8555-1a35-b54636e667e6@linux.intel.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
- Loading branch information
Showing
11 changed files
with
31,347 additions
and
0 deletions.
There are no files selected for viewing
10,172 changes: 10,172 additions & 0 deletions
10,172
tools/perf/pmu-events/arch/x86/cascadelakex/cache.json
Large diffs are not rendered by default.
Oops, something went wrong.
164 changes: 164 additions & 0 deletions
164
tools/perf/pmu-events/arch/x86/cascadelakex/clx-metrics.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,164 @@ | ||
[ | ||
{ | ||
"BriefDescription": "Instructions Per Cycle (per logical thread)", | ||
"MetricExpr": "INST_RETIRED.ANY / CPU_CLK_UNHALTED.THREAD", | ||
"MetricGroup": "TopDownL1", | ||
"MetricName": "IPC" | ||
}, | ||
{ | ||
"BriefDescription": "Uops Per Instruction", | ||
"MetricExpr": "UOPS_RETIRED.RETIRE_SLOTS / INST_RETIRED.ANY", | ||
"MetricGroup": "Pipeline", | ||
"MetricName": "UPI" | ||
}, | ||
{ | ||
"BriefDescription": "Rough Estimation of fraction of fetched lines bytes that were likely consumed by program instructions", | ||
"MetricExpr": "min( 1 , UOPS_ISSUED.ANY / ((UOPS_RETIRED.RETIRE_SLOTS / INST_RETIRED.ANY) * 64 * ( ICACHE_64B.IFTAG_HIT + ICACHE_64B.IFTAG_MISS ) / 4.1) )", | ||
"MetricGroup": "Frontend", | ||
"MetricName": "IFetch_Line_Utilization" | ||
}, | ||
{ | ||
"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 )", | ||
"MetricGroup": "DSB; Frontend_Bandwidth", | ||
"MetricName": "DSB_Coverage" | ||
}, | ||
{ | ||
"BriefDescription": "Cycles Per Instruction (threaded)", | ||
"MetricExpr": "1 / (INST_RETIRED.ANY / cycles)", | ||
"MetricGroup": "Pipeline;Summary", | ||
"MetricName": "CPI" | ||
}, | ||
{ | ||
"BriefDescription": "Per-thread actual clocks when the logical processor is active. This is called 'Clockticks' in VTune.", | ||
"MetricExpr": "CPU_CLK_UNHALTED.THREAD", | ||
"MetricGroup": "Summary", | ||
"MetricName": "CLKS" | ||
}, | ||
{ | ||
"BriefDescription": "Total issue-pipeline slots", | ||
"MetricExpr": "4*(( CPU_CLK_UNHALTED.THREAD_ANY / 2 ) if #SMT_on else cycles)", | ||
"MetricGroup": "TopDownL1", | ||
"MetricName": "SLOTS" | ||
}, | ||
{ | ||
"BriefDescription": "Total number of retired Instructions", | ||
"MetricExpr": "INST_RETIRED.ANY", | ||
"MetricGroup": "Summary", | ||
"MetricName": "Instructions" | ||
}, | ||
{ | ||
"BriefDescription": "Instructions Per Cycle (per physical core)", | ||
"MetricExpr": "INST_RETIRED.ANY / (( CPU_CLK_UNHALTED.THREAD_ANY / 2 ) if #SMT_on else cycles)", | ||
"MetricGroup": "SMT", | ||
"MetricName": "CoreIPC" | ||
}, | ||
{ | ||
"BriefDescription": "Instruction-Level-Parallelism (average number of uops executed when there is at least 1 uop executed)", | ||
"MetricExpr": "UOPS_EXECUTED.THREAD / (( UOPS_EXECUTED.CORE_CYCLES_GE_1 / 2) if #SMT_on else UOPS_EXECUTED.CORE_CYCLES_GE_1)", | ||
"MetricGroup": "Pipeline;Ports_Utilization", | ||
"MetricName": "ILP" | ||
}, | ||
{ | ||
"BriefDescription": "Average Branch Address Clear Cost (fraction of cycles)", | ||
"MetricExpr": "2* (( RS_EVENTS.EMPTY_CYCLES - ICACHE_16B.IFDATA_STALL - ICACHE_64B.IFTAG_STALL ) / RS_EVENTS.EMPTY_END)", | ||
"MetricGroup": "Unknown_Branches", | ||
"MetricName": "BAClear_Cost" | ||
}, | ||
{ | ||
"BriefDescription": "Core actual clocks when any thread is active on the physical core", | ||
"MetricExpr": "( CPU_CLK_UNHALTED.THREAD_ANY / 2 ) if #SMT_on else CPU_CLK_UNHALTED.THREAD", | ||
"MetricGroup": "SMT", | ||
"MetricName": "CORE_CLKS" | ||
}, | ||
{ | ||
"BriefDescription": "Actual Average Latency for L1 data-cache miss demand loads", | ||
"MetricExpr": "L1D_PEND_MISS.PENDING / ( MEM_LOAD_RETIRED.L1_MISS_PS + MEM_LOAD_RETIRED.FB_HIT_PS )", | ||
"MetricGroup": "Memory_Bound;Memory_Lat", | ||
"MetricName": "Load_Miss_Real_Latency" | ||
}, | ||
{ | ||
"BriefDescription": "Memory-Level-Parallelism (average number of L1 miss demand load when there is at least 1 such miss)", | ||
"MetricExpr": "L1D_PEND_MISS.PENDING / (( L1D_PEND_MISS.PENDING_CYCLES_ANY / 2) if #SMT_on else L1D_PEND_MISS.PENDING_CYCLES)", | ||
"MetricGroup": "Memory_Bound;Memory_BW", | ||
"MetricName": "MLP" | ||
}, | ||
{ | ||
"BriefDescription": "Utilization of the core's Page Walker(s) serving STLB misses triggered by instruction/Load/Store accesses", | ||
"MetricExpr": "( ITLB_MISSES.WALK_PENDING + DTLB_LOAD_MISSES.WALK_PENDING + DTLB_STORE_MISSES.WALK_PENDING + EPT.WALK_PENDING ) / ( 2 * (( CPU_CLK_UNHALTED.THREAD_ANY / 2 ) if #SMT_on else cycles) )", | ||
"MetricGroup": "TLB", | ||
"MetricName": "Page_Walks_Utilization" | ||
}, | ||
{ | ||
"BriefDescription": "Average CPU Utilization", | ||
"MetricExpr": "CPU_CLK_UNHALTED.REF_TSC / msr@tsc@", | ||
"MetricGroup": "Summary", | ||
"MetricName": "CPU_Utilization" | ||
}, | ||
{ | ||
"BriefDescription": "Giga Floating Point Operations Per Second", | ||
"MetricExpr": "(( 1*( FP_ARITH_INST_RETIRED.SCALAR_SINGLE + FP_ARITH_INST_RETIRED.SCALAR_DOUBLE ) + 2* FP_ARITH_INST_RETIRED.128B_PACKED_DOUBLE + 4*( FP_ARITH_INST_RETIRED.128B_PACKED_SINGLE + FP_ARITH_INST_RETIRED.256B_PACKED_DOUBLE ) + 8* FP_ARITH_INST_RETIRED.256B_PACKED_SINGLE )) / 1000000000 / duration_time", | ||
"MetricGroup": "FLOPS;Summary", | ||
"MetricName": "GFLOPs" | ||
}, | ||
{ | ||
"BriefDescription": "Average Frequency Utilization relative nominal frequency", | ||
"MetricExpr": "CPU_CLK_UNHALTED.THREAD / CPU_CLK_UNHALTED.REF_TSC", | ||
"MetricGroup": "Power", | ||
"MetricName": "Turbo_Utilization" | ||
}, | ||
{ | ||
"BriefDescription": "Fraction of cycles where both hardware threads were active", | ||
"MetricExpr": "1 - CPU_CLK_THREAD_UNHALTED.ONE_THREAD_ACTIVE / ( CPU_CLK_THREAD_UNHALTED.REF_XCLK_ANY / 2 ) if #SMT_on else 0", | ||
"MetricGroup": "SMT;Summary", | ||
"MetricName": "SMT_2T_Utilization" | ||
}, | ||
{ | ||
"BriefDescription": "Fraction of cycles spent in Kernel mode", | ||
"MetricExpr": "CPU_CLK_UNHALTED.REF_TSC:u / CPU_CLK_UNHALTED.REF_TSC", | ||
"MetricGroup": "Summary", | ||
"MetricName": "Kernel_Utilization" | ||
}, | ||
{ | ||
"BriefDescription": "C3 residency percent per core", | ||
"MetricExpr": "(cstate_core@c3\\-residency@ / msr@tsc@) * 100", | ||
"MetricGroup": "Power", | ||
"MetricName": "C3_Core_Residency" | ||
}, | ||
{ | ||
"BriefDescription": "C6 residency percent per core", | ||
"MetricExpr": "(cstate_core@c6\\-residency@ / msr@tsc@) * 100", | ||
"MetricGroup": "Power", | ||
"MetricName": "C6_Core_Residency" | ||
}, | ||
{ | ||
"BriefDescription": "C7 residency percent per core", | ||
"MetricExpr": "(cstate_core@c7\\-residency@ / msr@tsc@) * 100", | ||
"MetricGroup": "Power", | ||
"MetricName": "C7_Core_Residency" | ||
}, | ||
{ | ||
"BriefDescription": "C2 residency percent per package", | ||
"MetricExpr": "(cstate_pkg@c2\\-residency@ / msr@tsc@) * 100", | ||
"MetricGroup": "Power", | ||
"MetricName": "C2_Pkg_Residency" | ||
}, | ||
{ | ||
"BriefDescription": "C3 residency percent per package", | ||
"MetricExpr": "(cstate_pkg@c3\\-residency@ / msr@tsc@) * 100", | ||
"MetricGroup": "Power", | ||
"MetricName": "C3_Pkg_Residency" | ||
}, | ||
{ | ||
"BriefDescription": "C6 residency percent per package", | ||
"MetricExpr": "(cstate_pkg@c6\\-residency@ / msr@tsc@) * 100", | ||
"MetricGroup": "Power", | ||
"MetricName": "C6_Pkg_Residency" | ||
}, | ||
{ | ||
"BriefDescription": "C7 residency percent per package", | ||
"MetricExpr": "(cstate_pkg@c7\\-residency@ / msr@tsc@) * 100", | ||
"MetricGroup": "Power", | ||
"MetricName": "C7_Pkg_Residency" | ||
} | ||
] |
85 changes: 85 additions & 0 deletions
85
tools/perf/pmu-events/arch/x86/cascadelakex/floating-point.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,85 @@ | ||
[ | ||
{ | ||
"EventCode": "0xC7", | ||
"UMask": "0x1", | ||
"BriefDescription": "Number of SSE/AVX computational scalar double precision floating-point instructions retired; some instructions will count twice as noted below. Each count represents 1 computation. Applies to SSE* and AVX* scalar double precision floating-point instructions: ADD SUB MUL DIV MIN MAX RCP14 RSQRT14 SQRT DPP FM(N)ADD/SUB. DPP and FM(N)ADD/SUB instructions count twice as they perform multiple calculations per element.", | ||
"Counter": "0,1,2,3", | ||
"EventName": "FP_ARITH_INST_RETIRED.SCALAR_DOUBLE", | ||
"SampleAfterValue": "2000003", | ||
"CounterHTOff": "0,1,2,3,4,5,6,7" | ||
}, | ||
{ | ||
"EventCode": "0xC7", | ||
"UMask": "0x2", | ||
"BriefDescription": "Number of SSE/AVX computational scalar single precision floating-point instructions retired; some instructions will count twice as noted below. Each count represents 1 computation. Applies to SSE* and AVX* scalar single precision floating-point instructions: ADD SUB MUL DIV MIN MAX RCP14 RSQRT14 SQRT DPP FM(N)ADD/SUB. DPP and FM(N)ADD/SUB instructions count twice as they perform multiple calculations per element.", | ||
"Counter": "0,1,2,3", | ||
"EventName": "FP_ARITH_INST_RETIRED.SCALAR_SINGLE", | ||
"SampleAfterValue": "2000003", | ||
"CounterHTOff": "0,1,2,3,4,5,6,7" | ||
}, | ||
{ | ||
"EventCode": "0xC7", | ||
"UMask": "0x4", | ||
"BriefDescription": "Number of SSE/AVX computational 128-bit packed double precision floating-point instructions retired; some instructions will count twice as noted below. Each count represents 2 computation operations, one for each element. Applies to SSE* and AVX* packed double precision floating-point instructions: ADD SUB HADD HSUB SUBADD MUL DIV MIN MAX SQRT RSQRT14 RCP14 DPP FM(N)ADD/SUB. DPP and FM(N)ADD/SUB instructions count twice as they perform 2 calculations per element.", | ||
"Counter": "0,1,2,3", | ||
"EventName": "FP_ARITH_INST_RETIRED.128B_PACKED_DOUBLE", | ||
"SampleAfterValue": "2000003", | ||
"CounterHTOff": "0,1,2,3,4,5,6,7" | ||
}, | ||
{ | ||
"EventCode": "0xC7", | ||
"UMask": "0x8", | ||
"BriefDescription": "Number of SSE/AVX computational 128-bit packed single precision floating-point instructions retired; some instructions will count twice as noted below. Each count represents 4 computation operations, one for each element. Applies to SSE* and AVX* packed single precision floating-point instructions: ADD SUB MUL DIV MIN MAX RCP14 RSQRT14 SQRT DPP FM(N)ADD/SUB. DPP and FM(N)ADD/SUB instructions count twice as they perform 4 calculations per element.", | ||
"Counter": "0,1,2,3", | ||
"EventName": "FP_ARITH_INST_RETIRED.128B_PACKED_SINGLE", | ||
"SampleAfterValue": "2000003", | ||
"CounterHTOff": "0,1,2,3,4,5,6,7" | ||
}, | ||
{ | ||
"EventCode": "0xC7", | ||
"UMask": "0x10", | ||
"BriefDescription": "Number of SSE/AVX computational 256-bit packed double precision floating-point instructions retired; some instructions will count twice as noted below. Each count represents 4 computation operations, one for each element. Applies to SSE* and AVX* packed double precision floating-point instructions: ADD SUB MUL DIV MIN MAX RCP14 RSQRT14 SQRT DPP FM(N)ADD/SUB. DPP and FM(N)ADD/SUB instructions count twice as they perform 4 calculations per element.", | ||
"Counter": "0,1,2,3", | ||
"EventName": "FP_ARITH_INST_RETIRED.256B_PACKED_DOUBLE", | ||
"SampleAfterValue": "2000003", | ||
"CounterHTOff": "0,1,2,3,4,5,6,7" | ||
}, | ||
{ | ||
"EventCode": "0xC7", | ||
"UMask": "0x20", | ||
"BriefDescription": "Number of SSE/AVX computational 256-bit packed single precision floating-point instructions retired; some instructions will count twice as noted below. Each count represents 8 computation operations, one for each element. Applies to SSE* and AVX* packed single precision floating-point instructions: ADD SUB MUL DIV MIN MAX RCP14 RSQRT14 SQRT DPP FM(N)ADD/SUB. DPP and FM(N)ADD/SUB instructions count twice as they perform 8 calculations per element.", | ||
"Counter": "0,1,2,3", | ||
"EventName": "FP_ARITH_INST_RETIRED.256B_PACKED_SINGLE", | ||
"SampleAfterValue": "2000003", | ||
"CounterHTOff": "0,1,2,3,4,5,6,7" | ||
}, | ||
{ | ||
"EventCode": "0xC7", | ||
"UMask": "0x40", | ||
"BriefDescription": "Number of SSE/AVX computational 512-bit packed double precision floating-point instructions retired; some instructions will count twice as noted below. Each count represents 8 computation operations, one for each element. Applies to SSE* and AVX* packed double precision floating-point instructions: ADD SUB MUL DIV MIN MAX RCP14 RSQRT14 SQRT DPP FM(N)ADD/SUB. DPP and FM(N)ADD/SUB instructions count twice as they perform 8 calculations per element.", | ||
"Counter": "0,1,2,3", | ||
"EventName": "FP_ARITH_INST_RETIRED.512B_PACKED_DOUBLE", | ||
"SampleAfterValue": "2000003", | ||
"CounterHTOff": "0,1,2,3,4,5,6,7" | ||
}, | ||
{ | ||
"EventCode": "0xC7", | ||
"UMask": "0x80", | ||
"BriefDescription": "Number of SSE/AVX computational 512-bit packed single precision floating-point instructions retired; some instructions will count twice as noted below. Each count represents 16 computation operations, one for each element. Applies to SSE* and AVX* packed single precision floating-point instructions: ADD SUB MUL DIV MIN MAX RCP14 RSQRT14 SQRT DPP FM(N)ADD/SUB. DPP and FM(N)ADD/SUB instructions count twice as they perform 16 calculations per element.", | ||
"Counter": "0,1,2,3", | ||
"EventName": "FP_ARITH_INST_RETIRED.512B_PACKED_SINGLE", | ||
"SampleAfterValue": "2000003", | ||
"CounterHTOff": "0,1,2,3,4,5,6,7" | ||
}, | ||
{ | ||
"EventCode": "0xCA", | ||
"UMask": "0x1e", | ||
"BriefDescription": "Cycles with any input/output SSE or FP assist", | ||
"Counter": "0,1,2,3", | ||
"EventName": "FP_ASSIST.ANY", | ||
"CounterMask": "1", | ||
"PublicDescription": "Counts cycles with any input and output SSE or x87 FP assist. If an input and output assist are detected on the same cycle the event increments by 1.", | ||
"SampleAfterValue": "100003", | ||
"CounterHTOff": "0,1,2,3,4,5,6,7" | ||
} | ||
] |
Oops, something went wrong.