Commit 34cb72ef authored by Ian Rogers's avatar Ian Rogers Committed by Arnaldo Carvalho de Melo
Browse files

perf vendor events: Update metrics for Broadwell DE

Based on TMA_metrics-full.csv version 4.3 at 01.org:
    https://download.01.org/perfmon/
Events are still at version 7:
    https://download.01.org/perfmon/BDW-DE
Json files generated by:
    https://github.com/intel/event-converter-for-linux-perf

This adds TopdownL1_SMT metrics to bdwde-metrics.json. A discussed in:
https://lore.kernel.org/all/20220129080929.837293-4-irogers@google.com/


The TMA_Metrics-full.csv was modified so that BDW-DE is in the server
column with BDX, the Page_Walks_Utilization and
Page_Walks_Utilization_SMT metrics are then copied from BDW.

Tested:

  ...
    6: Parse event definition strings                                  : Ok
    7: Simple expression parser                                        : Ok
  ...
    9: Parse perf pmu format                                           : Ok
   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
  ...
   68: Parse and process metrics                                       : Ok
  ...
   88: perf stat metrics (shadow stat) test                            : Ok
   89: perf all metricgroups test                                      : Ok
   90: perf all metrics test                                           : Skip
   91: perf all PMU test                                               : Ok
  ...

90 skips due to a lack of floating point samples, which is
understandable.

Suggested-by: default avatarKan Liang <kan.liang@linux.intel.com>
Reviewed-by: default avatarKan Liang <kan.liang@linux.intel.com>
Signed-off-by: default avatarIan 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: Ingo Molnar <mingo@redhat.com>
Cc: James Clark <james.clark@arm.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: John Garry <john.garry@huawei.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Maxime Coquelin <mcoquelin.stm32@gmail.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Cc: Zhengjun Xing <zhengjun.xing@linux.intel.com>
Link: https://lore.kernel.org/r/20220201015858.1226914-4-irogers@google.com


Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent 3bad20d7
Loading
Loading
Loading
Loading
+354 −53

File changed.

Preview size limit exceeded, changes collapsed.

+561 −561

File changed.

Preview size limit exceeded, changes collapsed.

+125 −97
Original line number Diff line number Diff line
[
    {
        "EventCode": "0xC1",
        "UMask": "0x8",
        "BriefDescription": "Number of transitions from AVX-256 to legacy SSE when penalty applicable.",
        "BriefDescription": "Number of SSE/AVX computational 128-bit packed double precision floating-point instructions retired.  Each count represents 2 computations. Applies to SSE* and AVX* packed double precision floating-point instructions: ADD SUB MUL DIV MIN MAX 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": "OTHER_ASSISTS.AVX_TO_SSE",
        "Errata": "BDM30",
        "PublicDescription": "This event counts the number of transitions from AVX-256 to legacy SSE when penalty is applicable.",
        "SampleAfterValue": "100003",
        "CounterHTOff": "0,1,2,3,4,5,6,7"
        "CounterHTOff": "0,1,2,3",
        "EventCode": "0xC7",
        "EventName": "FP_ARITH_INST_RETIRED.128B_PACKED_DOUBLE",
        "SampleAfterValue": "2000003",
        "UMask": "0x4"
    },
    {
        "EventCode": "0xC1",
        "UMask": "0x10",
        "BriefDescription": "Number of transitions from SSE to AVX-256 when penalty applicable.",
        "BriefDescription": "Number of SSE/AVX computational 128-bit packed single precision floating-point instructions retired.  Each count represents 4 computations. Applies to SSE* and AVX* packed single precision floating-point instructions: ADD SUB MUL DIV MIN MAX RCP RSQRT 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": "OTHER_ASSISTS.SSE_TO_AVX",
        "Errata": "BDM30",
        "PublicDescription": "This event counts the number of transitions from legacy SSE to AVX-256 when penalty is applicable.",
        "SampleAfterValue": "100003",
        "CounterHTOff": "0,1,2,3,4,5,6,7"
    },
    {
        "CounterHTOff": "0,1,2,3",
        "EventCode": "0xC7",
        "UMask": "0x1",
        "BriefDescription": "Number of SSE/AVX computational scalar double precision floating-point instructions retired.  Each count represents 1 computation. Applies to SSE* and AVX* scalar double precision floating-point instructions: ADD SUB MUL DIV MIN MAX SQRT FM(N)ADD/SUB.  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",
        "EventName": "FP_ARITH_INST_RETIRED.128B_PACKED_SINGLE",
        "SampleAfterValue": "2000003",
        "CounterHTOff": "0,1,2,3"
        "UMask": "0x8"
    },
    {
        "EventCode": "0xC7",
        "UMask": "0x2",
        "BriefDescription": "Number of SSE/AVX computational scalar single precision floating-point instructions retired.  Each count represents 1 computation. Applies to SSE* and AVX* scalar single precision floating-point instructions: ADD SUB MUL DIV MIN MAX RCP RSQRT SQRT FM(N)ADD/SUB.  FM(N)ADD/SUB instructions count twice as they perform multiple calculations per element.",
        "BriefDescription": "Number of SSE/AVX computational 256-bit packed double precision floating-point instructions retired.  Each count represents 4 computations. Applies to SSE* and AVX* packed double precision floating-point instructions: ADD SUB MUL DIV MIN MAX 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",
        "CounterHTOff": "0,1,2,3",
        "EventCode": "0xC7",
        "EventName": "FP_ARITH_INST_RETIRED.256B_PACKED_DOUBLE",
        "SampleAfterValue": "2000003",
        "CounterHTOff": "0,1,2,3"
        "UMask": "0x10"
    },
    {
        "EventCode": "0xC7",
        "UMask": "0x3",
        "BriefDescription": "Number of SSE/AVX computational scalar floating-point instructions retired. Applies to SSE* and AVX* scalar, double and single precision floating-point: ADD SUB MUL DIV MIN MAX RSQRT RCP SQRT FM(N)ADD/SUB. FM(N)ADD/SUB instructions count twice as they perform multiple calculations per element.",
        "BriefDescription": "Number of SSE/AVX computational 256-bit packed single precision floating-point instructions retired.  Each count represents 8 computations. Applies to SSE* and AVX* packed single precision floating-point instructions: ADD SUB MUL DIV MIN MAX RCP RSQRT 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",
        "CounterHTOff": "0,1,2,3",
        "EventCode": "0xc7",
        "EventName": "FP_ARITH_INST_RETIRED.256B_PACKED_SINGLE",
        "SampleAfterValue": "2000003",
        "CounterHTOff": "0,1,2,3"
        "UMask": "0x20"
    },
    {
        "EventCode": "0xC7",
        "UMask": "0x4",
        "BriefDescription": "Number of SSE/AVX computational 128-bit packed double precision floating-point instructions retired.  Each count represents 2 computations. Applies to SSE* and AVX* packed double precision floating-point instructions: ADD SUB MUL DIV MIN MAX SQRT DPP FM(N)ADD/SUB.  DPP and FM(N)ADD/SUB instructions count twice as they perform multiple calculations per element.",
        "BriefDescription": "Number of SSE/AVX computational double precision floating-point instructions retired. Applies to SSE* and AVX*scalar, double and single precision floating-point: ADD SUB MUL DIV MIN MAX 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.128B_PACKED_DOUBLE",
        "SampleAfterValue": "2000003",
        "CounterHTOff": "0,1,2,3"
        "CounterHTOff": "0,1,2,3",
        "EventCode": "0xC7",
        "EventName": "FP_ARITH_INST_RETIRED.DOUBLE",
        "SampleAfterValue": "2000006",
        "UMask": "0x15"
    },
    {
        "EventCode": "0xC7",
        "UMask": "0x8",
        "BriefDescription": "Number of SSE/AVX computational 128-bit packed single precision floating-point instructions retired.  Each count represents 4 computations. Applies to SSE* and AVX* packed single precision floating-point instructions: ADD SUB MUL DIV MIN MAX RCP RSQRT SQRT DPP FM(N)ADD/SUB.  DPP and FM(N)ADD/SUB instructions count twice as they perform multiple calculations per element.",
        "BriefDescription": "Number of SSE/AVX computational packed floating-point instructions retired. Applies to SSE* and AVX*, packed, double and single precision floating-point: ADD SUB MUL DIV MIN MAX RSQRT RCP 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.128B_PACKED_SINGLE",
        "SampleAfterValue": "2000003",
        "CounterHTOff": "0,1,2,3"
        "CounterHTOff": "0,1,2,3",
        "EventCode": "0xC7",
        "EventName": "FP_ARITH_INST_RETIRED.PACKED",
        "SampleAfterValue": "2000004",
        "UMask": "0x3c"
    },
    {
        "EventCode": "0xC7",
        "UMask": "0x10",
        "BriefDescription": "Number of SSE/AVX computational 256-bit packed double precision floating-point instructions retired.  Each count represents 4 computations. Applies to SSE* and AVX* packed double precision floating-point instructions: ADD SUB MUL DIV MIN MAX SQRT DPP FM(N)ADD/SUB.  DPP and FM(N)ADD/SUB instructions count twice as they perform multiple calculations per element.",
        "BriefDescription": "Number of SSE/AVX computational scalar floating-point instructions retired. Applies to SSE* and AVX* scalar, double and single precision floating-point: ADD SUB MUL DIV MIN MAX RSQRT RCP SQRT FM(N)ADD/SUB. FM(N)ADD/SUB instructions count twice as they perform multiple calculations per element.",
        "Counter": "0,1,2,3",
        "EventName": "FP_ARITH_INST_RETIRED.256B_PACKED_DOUBLE",
        "CounterHTOff": "0,1,2,3",
        "EventCode": "0xC7",
        "EventName": "FP_ARITH_INST_RETIRED.SCALAR",
        "SampleAfterValue": "2000003",
        "CounterHTOff": "0,1,2,3"
        "UMask": "0x3"
    },
    {
        "EventCode": "0xC7",
        "UMask": "0x15",
        "BriefDescription": "Number of SSE/AVX computational double precision floating-point instructions retired. Applies to SSE* and AVX*scalar, double and single precision floating-point: ADD SUB MUL DIV MIN MAX SQRT DPP FM(N)ADD/SUB.  DPP and FM(N)ADD/SUB instructions count twice as they perform multiple calculations per element.  ?.",
        "BriefDescription": "Number of SSE/AVX computational scalar double precision floating-point instructions retired.  Each count represents 1 computation. Applies to SSE* and AVX* scalar double precision floating-point instructions: ADD SUB MUL DIV MIN MAX SQRT FM(N)ADD/SUB.  FM(N)ADD/SUB instructions count twice as they perform multiple calculations per element.",
        "Counter": "0,1,2,3",
        "EventName": "FP_ARITH_INST_RETIRED.DOUBLE",
        "SampleAfterValue": "2000006",
        "CounterHTOff": "0,1,2,3"
        "CounterHTOff": "0,1,2,3",
        "EventCode": "0xC7",
        "EventName": "FP_ARITH_INST_RETIRED.SCALAR_DOUBLE",
        "SampleAfterValue": "2000003",
        "UMask": "0x1"
    },
    {
        "EventCode": "0xc7",
        "UMask": "0x20",
        "BriefDescription": "Number of SSE/AVX computational 256-bit packed single precision floating-point instructions retired.  Each count represents 8 computations. Applies to SSE* and AVX* packed single precision floating-point instructions: ADD SUB MUL DIV MIN MAX RCP RSQRT SQRT DPP FM(N)ADD/SUB.  DPP and FM(N)ADD/SUB instructions count twice as they perform multiple calculations per element.",
        "BriefDescription": "Number of SSE/AVX computational scalar single precision floating-point instructions retired.  Each count represents 1 computation. Applies to SSE* and AVX* scalar single precision floating-point instructions: ADD SUB MUL DIV MIN MAX RCP RSQRT SQRT FM(N)ADD/SUB.  FM(N)ADD/SUB instructions count twice as they perform multiple calculations per element.",
        "Counter": "0,1,2,3",
        "EventName": "FP_ARITH_INST_RETIRED.256B_PACKED_SINGLE",
        "CounterHTOff": "0,1,2,3",
        "EventCode": "0xC7",
        "EventName": "FP_ARITH_INST_RETIRED.SCALAR_SINGLE",
        "SampleAfterValue": "2000003",
        "CounterHTOff": "0,1,2,3"
        "UMask": "0x2"
    },
    {
        "EventCode": "0xC7",
        "UMask": "0x2a",
        "BriefDescription": "Number of SSE/AVX computational single precision floating-point instructions retired. Applies to SSE* and AVX*scalar, double and single precision floating-point: ADD SUB MUL DIV MIN MAX RCP RSQRT 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",
        "CounterHTOff": "0,1,2,3",
        "EventCode": "0xC7",
        "EventName": "FP_ARITH_INST_RETIRED.SINGLE",
        "SampleAfterValue": "2000005",
        "CounterHTOff": "0,1,2,3"
        "UMask": "0x2a"
    },
    {
        "EventCode": "0xC7",
        "UMask": "0x3c",
        "BriefDescription": "Number of SSE/AVX computational packed floating-point instructions retired. Applies to SSE* and AVX*, packed, double and single precision floating-point: ADD SUB MUL DIV MIN MAX RSQRT RCP SQRT DPP FM(N)ADD/SUB.  DPP and FM(N)ADD/SUB instructions count twice as they perform multiple calculations per element.",
        "BriefDescription": "Cycles with any input/output SSE or FP assist",
        "Counter": "0,1,2,3",
        "EventName": "FP_ARITH_INST_RETIRED.PACKED",
        "SampleAfterValue": "2000004",
        "CounterHTOff": "0,1,2,3"
        "CounterHTOff": "0,1,2,3",
        "CounterMask": "1",
        "EventCode": "0xCA",
        "EventName": "FP_ASSIST.ANY",
        "PublicDescription": "This event 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",
        "UMask": "0x1e"
    },
    {
        "EventCode": "0xCA",
        "UMask": "0x2",
        "BriefDescription": "Number of X87 assists due to output value.",
        "BriefDescription": "Number of SIMD FP assists due to input values",
        "Counter": "0,1,2,3",
        "EventName": "FP_ASSIST.X87_OUTPUT",
        "PublicDescription": "This event counts the number of x87 floating point (FP) micro-code assist (numeric overflow/underflow, inexact result) when the output value (destination register) is invalid.",
        "CounterHTOff": "0,1,2,3,4,5,6,7",
        "EventCode": "0xCA",
        "EventName": "FP_ASSIST.SIMD_INPUT",
        "PublicDescription": "This event counts any input SSE* FP assist - invalid operation, denormal operand, dividing by zero, SNaN operand. Counting includes only cases involving penalties that required micro-code assist intervention.",
        "SampleAfterValue": "100003",
        "CounterHTOff": "0,1,2,3,4,5,6,7"
        "UMask": "0x10"
    },
    {
        "BriefDescription": "Number of SIMD FP assists due to Output values",
        "Counter": "0,1,2,3",
        "CounterHTOff": "0,1,2,3,4,5,6,7",
        "EventCode": "0xCA",
        "UMask": "0x4",
        "EventName": "FP_ASSIST.SIMD_OUTPUT",
        "PublicDescription": "This event counts the number of SSE* floating point (FP) micro-code assist (numeric overflow/underflow) when the output value (destination register) is invalid. Counting covers only cases involving penalties that require micro-code assist intervention.",
        "SampleAfterValue": "100003",
        "UMask": "0x8"
    },
    {
        "BriefDescription": "Number of X87 assists due to input value.",
        "Counter": "0,1,2,3",
        "CounterHTOff": "0,1,2,3,4,5,6,7",
        "EventCode": "0xCA",
        "EventName": "FP_ASSIST.X87_INPUT",
        "PublicDescription": "This event counts x87 floating point (FP) micro-code assist (invalid operation, denormal operand, SNaN operand) when the input value (one of the source operands to an FP instruction) is invalid.",
        "SampleAfterValue": "100003",
        "CounterHTOff": "0,1,2,3,4,5,6,7"
        "UMask": "0x4"
    },
    {
        "EventCode": "0xCA",
        "UMask": "0x8",
        "BriefDescription": "Number of SIMD FP assists due to Output values",
        "BriefDescription": "Number of X87 assists due to output value.",
        "Counter": "0,1,2,3",
        "EventName": "FP_ASSIST.SIMD_OUTPUT",
        "PublicDescription": "This event counts the number of SSE* floating point (FP) micro-code assist (numeric overflow/underflow) when the output value (destination register) is invalid. Counting covers only cases involving penalties that require micro-code assist intervention.",
        "CounterHTOff": "0,1,2,3,4,5,6,7",
        "EventCode": "0xCA",
        "EventName": "FP_ASSIST.X87_OUTPUT",
        "PublicDescription": "This event counts the number of x87 floating point (FP) micro-code assist (numeric overflow/underflow, inexact result) when the output value (destination register) is invalid.",
        "SampleAfterValue": "100003",
        "CounterHTOff": "0,1,2,3,4,5,6,7"
        "UMask": "0x2"
    },
    {
        "EventCode": "0xCA",
        "UMask": "0x10",
        "BriefDescription": "Number of SIMD FP assists due to input values",
        "BriefDescription": "Number of SIMD Move Elimination candidate uops that were eliminated.",
        "Counter": "0,1,2,3",
        "EventName": "FP_ASSIST.SIMD_INPUT",
        "PublicDescription": "This event counts any input SSE* FP assist - invalid operation, denormal operand, dividing by zero, SNaN operand. Counting includes only cases involving penalties that required micro-code assist intervention.",
        "CounterHTOff": "0,1,2,3,4,5,6,7",
        "EventCode": "0x58",
        "EventName": "MOVE_ELIMINATION.SIMD_ELIMINATED",
        "SampleAfterValue": "1000003",
        "UMask": "0x2"
    },
    {
        "BriefDescription": "Number of SIMD Move Elimination candidate uops that were not eliminated.",
        "Counter": "0,1,2,3",
        "CounterHTOff": "0,1,2,3,4,5,6,7",
        "EventCode": "0x58",
        "EventName": "MOVE_ELIMINATION.SIMD_NOT_ELIMINATED",
        "SampleAfterValue": "1000003",
        "UMask": "0x8"
    },
    {
        "BriefDescription": "Number of transitions from AVX-256 to legacy SSE when penalty applicable.",
        "Counter": "0,1,2,3",
        "CounterHTOff": "0,1,2,3,4,5,6,7",
        "Errata": "BDM30",
        "EventCode": "0xC1",
        "EventName": "OTHER_ASSISTS.AVX_TO_SSE",
        "PublicDescription": "This event counts the number of transitions from AVX-256 to legacy SSE when penalty is applicable.",
        "SampleAfterValue": "100003",
        "CounterHTOff": "0,1,2,3,4,5,6,7"
        "UMask": "0x8"
    },
    {
        "EventCode": "0xCA",
        "UMask": "0x1e",
        "BriefDescription": "Cycles with any input/output SSE or FP assist",
        "BriefDescription": "Number of transitions from SSE to AVX-256 when penalty applicable.",
        "Counter": "0,1,2,3",
        "EventName": "FP_ASSIST.ANY",
        "CounterMask": "1",
        "PublicDescription": "This event 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.",
        "CounterHTOff": "0,1,2,3,4,5,6,7",
        "Errata": "BDM30",
        "EventCode": "0xC1",
        "EventName": "OTHER_ASSISTS.SSE_TO_AVX",
        "PublicDescription": "This event counts the number of transitions from legacy SSE to AVX-256 when penalty is applicable.",
        "SampleAfterValue": "100003",
        "CounterHTOff": "0,1,2,3"
        "UMask": "0x10"
    },
    {
        "BriefDescription": "Micro-op dispatches cancelled due to insufficient SIMD physical register file read ports",
        "Counter": "0,1,2,3",
        "CounterHTOff": "0,1,2,3",
        "EventCode": "0xA0",
        "EventName": "UOP_DISPATCHES_CANCELLED.SIMD_PRF",
        "PublicDescription": "This event counts the number of micro-operations cancelled after they were dispatched from the scheduler to the execution units when the total number of physical register read ports across all dispatch ports exceeds the read bandwidth of the physical register file.  The SIMD_PRF subevent applies to the following instructions: VDPPS, DPPS, VPCMPESTRI, PCMPESTRI, VPCMPESTRM, PCMPESTRM, VFMADD*, VFMADDSUB*, VFMSUB*, VMSUBADD*, VFNMADD*, VFNMSUB*.  See the Broadwell Optimization Guide for more information.",
        "SampleAfterValue": "2000003",
        "UMask": "0x3"
    }
]
 No newline at end of file
+172 −163

File changed.

Preview size limit exceeded, changes collapsed.

+304 −304

File changed.

Preview size limit exceeded, changes collapsed.

Loading