mbox series

[v7,0/8] perf vendor events: Add JSON metrics for Arm CMN

Message ID 1692606977-92009-1-git-send-email-renyu.zj@linux.alibaba.com (mailing list archive)
Headers show
Series perf vendor events: Add JSON metrics for Arm CMN | expand

Message

Jing Zhang Aug. 21, 2023, 8:36 a.m. UTC
Changes since v6:
- Supplement the omitted EventCode;
- Keep the original way of ConfigCode;
- Supplement the test in empty-pmu-events.c, so that the pmu event test
  can succeed when build with NO_JEVENT=1.
- Link: https://lore.kernel.org/all/1691394685-61240-1-git-send-email-renyu.zj@linux.alibaba.com/

Jing Zhang (8):
  perf pmu: "Compat" supports matching multiple identifiers
  perf metric: "Compat" supports matching multiple identifiers
  perf vendor events: Supplement the omitted EventCode
  perf jevents: Support more event fields
  perf test: Make matching_pmu effective
  perf test: Add pmu-event test for "Compat" and new event_field.
  perf jevents: Add support for Arm CMN PMU aliasing
  perf vendor events: Add JSON metrics for Arm CMN

 .../pmu-events/arch/arm64/arm/cmn/sys/cmn.json     | 266 +++++++++++++++++++++
 .../pmu-events/arch/arm64/arm/cmn/sys/metric.json  |  74 ++++++
 .../pmu-events/arch/test/test_soc/sys/uncore.json  |   8 +
 .../pmu-events/arch/x86/alderlake/pipeline.json    |   9 +
 .../pmu-events/arch/x86/alderlaken/pipeline.json   |   3 +
 .../pmu-events/arch/x86/broadwell/pipeline.json    |   4 +
 .../pmu-events/arch/x86/broadwellde/pipeline.json  |   4 +
 .../arch/x86/broadwellde/uncore-cache.json         |   2 +
 .../arch/x86/broadwellde/uncore-interconnect.json  |   1 +
 .../arch/x86/broadwellde/uncore-memory.json        |   1 +
 .../arch/x86/broadwellde/uncore-power.json         |   1 +
 .../pmu-events/arch/x86/broadwellx/pipeline.json   |   4 +
 .../arch/x86/broadwellx/uncore-cache.json          |   2 +
 .../arch/x86/broadwellx/uncore-interconnect.json   |  13 +
 .../arch/x86/broadwellx/uncore-memory.json         |   2 +
 .../arch/x86/broadwellx/uncore-power.json          |   1 +
 .../pmu-events/arch/x86/cascadelakex/pipeline.json |   4 +
 .../arch/x86/cascadelakex/uncore-cache.json        |   2 +
 .../arch/x86/cascadelakex/uncore-interconnect.json |   1 +
 .../arch/x86/cascadelakex/uncore-io.json           |   1 +
 .../arch/x86/cascadelakex/uncore-memory.json       |   1 +
 .../arch/x86/cascadelakex/uncore-power.json        |   1 +
 .../pmu-events/arch/x86/elkhartlake/pipeline.json  |   2 +
 .../pmu-events/arch/x86/goldmont/pipeline.json     |   3 +
 .../pmu-events/arch/x86/goldmontplus/pipeline.json |   3 +
 .../pmu-events/arch/x86/grandridge/pipeline.json   |   3 +
 .../arch/x86/graniterapids/pipeline.json           |   4 +
 .../perf/pmu-events/arch/x86/haswell/pipeline.json |   4 +
 .../pmu-events/arch/x86/haswellx/pipeline.json     |   4 +
 .../pmu-events/arch/x86/haswellx/uncore-cache.json |   2 +
 .../arch/x86/haswellx/uncore-interconnect.json     |  14 ++
 .../arch/x86/haswellx/uncore-memory.json           |   2 +
 .../pmu-events/arch/x86/haswellx/uncore-power.json |   1 +
 .../perf/pmu-events/arch/x86/icelake/pipeline.json |   4 +
 .../pmu-events/arch/x86/icelakex/pipeline.json     |   4 +
 .../pmu-events/arch/x86/icelakex/uncore-cache.json |   1 +
 .../arch/x86/icelakex/uncore-interconnect.json     |   1 +
 .../arch/x86/icelakex/uncore-memory.json           |   1 +
 .../pmu-events/arch/x86/icelakex/uncore-power.json |   1 +
 .../pmu-events/arch/x86/ivybridge/pipeline.json    |   3 +
 .../perf/pmu-events/arch/x86/ivytown/pipeline.json |   4 +
 .../pmu-events/arch/x86/ivytown/uncore-cache.json  |   2 +
 .../arch/x86/ivytown/uncore-interconnect.json      |  11 +
 .../pmu-events/arch/x86/ivytown/uncore-memory.json |   1 +
 .../pmu-events/arch/x86/ivytown/uncore-power.json  |   1 +
 .../pmu-events/arch/x86/jaketown/pipeline.json     |   4 +
 .../pmu-events/arch/x86/jaketown/uncore-cache.json |   2 +
 .../arch/x86/jaketown/uncore-interconnect.json     |  12 +
 .../arch/x86/jaketown/uncore-memory.json           |   1 +
 .../pmu-events/arch/x86/jaketown/uncore-power.json |   2 +
 .../arch/x86/knightslanding/pipeline.json          |   3 +
 .../arch/x86/knightslanding/uncore-cache.json      |   1 +
 .../arch/x86/knightslanding/uncore-memory.json     |   4 +
 .../pmu-events/arch/x86/meteorlake/pipeline.json   |   8 +
 .../pmu-events/arch/x86/sandybridge/pipeline.json  |   4 +
 .../arch/x86/sapphirerapids/pipeline.json          |   5 +
 .../pmu-events/arch/x86/sierraforest/pipeline.json |   4 +
 .../pmu-events/arch/x86/silvermont/pipeline.json   |   3 +
 .../perf/pmu-events/arch/x86/skylake/pipeline.json |   4 +
 .../pmu-events/arch/x86/skylakex/pipeline.json     |   4 +
 .../pmu-events/arch/x86/skylakex/uncore-cache.json |   2 +
 .../arch/x86/skylakex/uncore-interconnect.json     |   1 +
 .../pmu-events/arch/x86/skylakex/uncore-io.json    |   1 +
 .../arch/x86/skylakex/uncore-memory.json           |   1 +
 .../pmu-events/arch/x86/skylakex/uncore-power.json |   1 +
 .../pmu-events/arch/x86/snowridgex/pipeline.json   |   2 +
 .../arch/x86/snowridgex/uncore-cache.json          |   1 +
 .../arch/x86/snowridgex/uncore-interconnect.json   |   1 +
 .../arch/x86/snowridgex/uncore-memory.json         |   1 +
 .../arch/x86/snowridgex/uncore-power.json          |   1 +
 .../pmu-events/arch/x86/tigerlake/pipeline.json    |   5 +
 tools/perf/pmu-events/empty-pmu-events.c           |   8 +
 tools/perf/pmu-events/jevents.py                   |  21 +-
 tools/perf/tests/pmu-events.c                      |  64 ++++-
 tools/perf/util/metricgroup.c                      |   2 +-
 tools/perf/util/pmu.c                              |  33 ++-
 tools/perf/util/pmu.h                              |   1 +
 77 files changed, 679 insertions(+), 9 deletions(-)
 create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cmn/sys/cmn.json
 create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cmn/sys/metric.json

Comments

John Garry Aug. 23, 2023, 8:12 a.m. UTC | #1
On 21/08/2023 09:36, Jing Zhang wrote:

I'm hoping that Ian can check the outstanding patches here, but I'll 
also have a look.

> Changes since v6:
> - Supplement the omitted EventCode;
> - Keep the original way of ConfigCode;
> - Supplement the test in empty-pmu-events.c, so that the pmu event test
>    can succeed when build with NO_JEVENT=1.
> - Link: https://urldefense.com/v3/__https://lore.kernel.org/all/1691394685-61240-1-git-send-email-renyu.zj@linux.alibaba.com/__;!!ACWV5N9M2RV99hQ!Lakh7Lf-6l6Hovm4Tt5S5pqV1xHm-LAW2ICVl6gLONlN4CNk-BvyADBfjwQe5yQQj89yMK7s7rSjMNHCyFsIUxnHXg$
> 
> Jing Zhang (8):
>    perf pmu: "Compat" supports matching multiple identifiers
>    perf metric: "Compat" supports matching multiple identifiers
>    perf vendor events: Supplement the omitted EventCode
>    perf jevents: Support more event fields
>    perf test: Make matching_pmu effective
>    perf test: Add pmu-event test for "Compat" and new event_field.
>    perf jevents: Add support for Arm CMN PMU aliasing
>    perf vendor events: Add JSON metrics for Arm CMN
> 
>   .../pmu-events/arch/arm64/arm/cmn/sys/cmn.json     | 266 +++++++++++++++++++++
>   .../pmu-events/arch/arm64/arm/cmn/sys/metric.json  |  74 ++++++
>   .../pmu-events/arch/test/test_soc/sys/uncore.json  |   8 +
>   .../pmu-events/arch/x86/alderlake/pipeline.json    |   9 +
>   .../pmu-events/arch/x86/alderlaken/pipeline.json   |   3 +
>   .../pmu-events/arch/x86/broadwell/pipeline.json    |   4 +
>   .../pmu-events/arch/x86/broadwellde/pipeline.json  |   4 +
>   .../arch/x86/broadwellde/uncore-cache.json         |   2 +
>   .../arch/x86/broadwellde/uncore-interconnect.json  |   1 +
>   .../arch/x86/broadwellde/uncore-memory.json        |   1 +
>   .../arch/x86/broadwellde/uncore-power.json         |   1 +
>   .../pmu-events/arch/x86/broadwellx/pipeline.json   |   4 +
>   .../arch/x86/broadwellx/uncore-cache.json          |   2 +
>   .../arch/x86/broadwellx/uncore-interconnect.json   |  13 +
>   .../arch/x86/broadwellx/uncore-memory.json         |   2 +
>   .../arch/x86/broadwellx/uncore-power.json          |   1 +
>   .../pmu-events/arch/x86/cascadelakex/pipeline.json |   4 +
>   .../arch/x86/cascadelakex/uncore-cache.json        |   2 +
>   .../arch/x86/cascadelakex/uncore-interconnect.json |   1 +
>   .../arch/x86/cascadelakex/uncore-io.json           |   1 +
>   .../arch/x86/cascadelakex/uncore-memory.json       |   1 +
>   .../arch/x86/cascadelakex/uncore-power.json        |   1 +
>   .../pmu-events/arch/x86/elkhartlake/pipeline.json  |   2 +
>   .../pmu-events/arch/x86/goldmont/pipeline.json     |   3 +
>   .../pmu-events/arch/x86/goldmontplus/pipeline.json |   3 +
>   .../pmu-events/arch/x86/grandridge/pipeline.json   |   3 +
>   .../arch/x86/graniterapids/pipeline.json           |   4 +
>   .../perf/pmu-events/arch/x86/haswell/pipeline.json |   4 +
>   .../pmu-events/arch/x86/haswellx/pipeline.json     |   4 +
>   .../pmu-events/arch/x86/haswellx/uncore-cache.json |   2 +
>   .../arch/x86/haswellx/uncore-interconnect.json     |  14 ++
>   .../arch/x86/haswellx/uncore-memory.json           |   2 +
>   .../pmu-events/arch/x86/haswellx/uncore-power.json |   1 +
>   .../perf/pmu-events/arch/x86/icelake/pipeline.json |   4 +
>   .../pmu-events/arch/x86/icelakex/pipeline.json     |   4 +
>   .../pmu-events/arch/x86/icelakex/uncore-cache.json |   1 +
>   .../arch/x86/icelakex/uncore-interconnect.json     |   1 +
>   .../arch/x86/icelakex/uncore-memory.json           |   1 +
>   .../pmu-events/arch/x86/icelakex/uncore-power.json |   1 +
>   .../pmu-events/arch/x86/ivybridge/pipeline.json    |   3 +
>   .../perf/pmu-events/arch/x86/ivytown/pipeline.json |   4 +
>   .../pmu-events/arch/x86/ivytown/uncore-cache.json  |   2 +
>   .../arch/x86/ivytown/uncore-interconnect.json      |  11 +
>   .../pmu-events/arch/x86/ivytown/uncore-memory.json |   1 +
>   .../pmu-events/arch/x86/ivytown/uncore-power.json  |   1 +
>   .../pmu-events/arch/x86/jaketown/pipeline.json     |   4 +
>   .../pmu-events/arch/x86/jaketown/uncore-cache.json |   2 +
>   .../arch/x86/jaketown/uncore-interconnect.json     |  12 +
>   .../arch/x86/jaketown/uncore-memory.json           |   1 +
>   .../pmu-events/arch/x86/jaketown/uncore-power.json |   2 +
>   .../arch/x86/knightslanding/pipeline.json          |   3 +
>   .../arch/x86/knightslanding/uncore-cache.json      |   1 +
>   .../arch/x86/knightslanding/uncore-memory.json     |   4 +
>   .../pmu-events/arch/x86/meteorlake/pipeline.json   |   8 +
>   .../pmu-events/arch/x86/sandybridge/pipeline.json  |   4 +
>   .../arch/x86/sapphirerapids/pipeline.json          |   5 +
>   .../pmu-events/arch/x86/sierraforest/pipeline.json |   4 +
>   .../pmu-events/arch/x86/silvermont/pipeline.json   |   3 +
>   .../perf/pmu-events/arch/x86/skylake/pipeline.json |   4 +
>   .../pmu-events/arch/x86/skylakex/pipeline.json     |   4 +
>   .../pmu-events/arch/x86/skylakex/uncore-cache.json |   2 +
>   .../arch/x86/skylakex/uncore-interconnect.json     |   1 +
>   .../pmu-events/arch/x86/skylakex/uncore-io.json    |   1 +
>   .../arch/x86/skylakex/uncore-memory.json           |   1 +
>   .../pmu-events/arch/x86/skylakex/uncore-power.json |   1 +
>   .../pmu-events/arch/x86/snowridgex/pipeline.json   |   2 +
>   .../arch/x86/snowridgex/uncore-cache.json          |   1 +
>   .../arch/x86/snowridgex/uncore-interconnect.json   |   1 +
>   .../arch/x86/snowridgex/uncore-memory.json         |   1 +
>   .../arch/x86/snowridgex/uncore-power.json          |   1 +
>   .../pmu-events/arch/x86/tigerlake/pipeline.json    |   5 +
>   tools/perf/pmu-events/empty-pmu-events.c           |   8 +
>   tools/perf/pmu-events/jevents.py                   |  21 +-
>   tools/perf/tests/pmu-events.c                      |  64 ++++-
>   tools/perf/util/metricgroup.c                      |   2 +-
>   tools/perf/util/pmu.c                              |  33 ++-
>   tools/perf/util/pmu.h                              |   1 +
>   77 files changed, 679 insertions(+), 9 deletions(-)
>   create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cmn/sys/cmn.json
>   create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cmn/sys/metric.json
>
Jing Zhang Aug. 24, 2023, 2:33 a.m. UTC | #2
在 2023/8/23 下午4:12, John Garry 写道:
> On 21/08/2023 09:36, Jing Zhang wrote:
> 
> I'm hoping that Ian can check the outstanding patches here, but I'll also have a look.
> 

Thanks! I haven't added your tag to patch 6 for now, because I made a modification and added
the code in empty-pmu-events.c. Looking forward to your review.

Thanks,
Jing

>> Changes since v6:
>> - Supplement the omitted EventCode;
>> - Keep the original way of ConfigCode;
>> - Supplement the test in empty-pmu-events.c, so that the pmu event test
>>    can succeed when build with NO_JEVENT=1.
>> - Link: https://urldefense.com/v3/__https://lore.kernel.org/all/1691394685-61240-1-git-send-email-renyu.zj@linux.alibaba.com/__;!!ACWV5N9M2RV99hQ!Lakh7Lf-6l6Hovm4Tt5S5pqV1xHm-LAW2ICVl6gLONlN4CNk-BvyADBfjwQe5yQQj89yMK7s7rSjMNHCyFsIUxnHXg$
>>
>> Jing Zhang (8):
>>    perf pmu: "Compat" supports matching multiple identifiers
>>    perf metric: "Compat" supports matching multiple identifiers
>>    perf vendor events: Supplement the omitted EventCode
>>    perf jevents: Support more event fields
>>    perf test: Make matching_pmu effective
>>    perf test: Add pmu-event test for "Compat" and new event_field.
>>    perf jevents: Add support for Arm CMN PMU aliasing
>>    perf vendor events: Add JSON metrics for Arm CMN
>>
>>   .../pmu-events/arch/arm64/arm/cmn/sys/cmn.json     | 266 +++++++++++++++++++++
>>   .../pmu-events/arch/arm64/arm/cmn/sys/metric.json  |  74 ++++++
>>   .../pmu-events/arch/test/test_soc/sys/uncore.json  |   8 +
>>   .../pmu-events/arch/x86/alderlake/pipeline.json    |   9 +
>>   .../pmu-events/arch/x86/alderlaken/pipeline.json   |   3 +
>>   .../pmu-events/arch/x86/broadwell/pipeline.json    |   4 +
>>   .../pmu-events/arch/x86/broadwellde/pipeline.json  |   4 +
>>   .../arch/x86/broadwellde/uncore-cache.json         |   2 +
>>   .../arch/x86/broadwellde/uncore-interconnect.json  |   1 +
>>   .../arch/x86/broadwellde/uncore-memory.json        |   1 +
>>   .../arch/x86/broadwellde/uncore-power.json         |   1 +
>>   .../pmu-events/arch/x86/broadwellx/pipeline.json   |   4 +
>>   .../arch/x86/broadwellx/uncore-cache.json          |   2 +
>>   .../arch/x86/broadwellx/uncore-interconnect.json   |  13 +
>>   .../arch/x86/broadwellx/uncore-memory.json         |   2 +
>>   .../arch/x86/broadwellx/uncore-power.json          |   1 +
>>   .../pmu-events/arch/x86/cascadelakex/pipeline.json |   4 +
>>   .../arch/x86/cascadelakex/uncore-cache.json        |   2 +
>>   .../arch/x86/cascadelakex/uncore-interconnect.json |   1 +
>>   .../arch/x86/cascadelakex/uncore-io.json           |   1 +
>>   .../arch/x86/cascadelakex/uncore-memory.json       |   1 +
>>   .../arch/x86/cascadelakex/uncore-power.json        |   1 +
>>   .../pmu-events/arch/x86/elkhartlake/pipeline.json  |   2 +
>>   .../pmu-events/arch/x86/goldmont/pipeline.json     |   3 +
>>   .../pmu-events/arch/x86/goldmontplus/pipeline.json |   3 +
>>   .../pmu-events/arch/x86/grandridge/pipeline.json   |   3 +
>>   .../arch/x86/graniterapids/pipeline.json           |   4 +
>>   .../perf/pmu-events/arch/x86/haswell/pipeline.json |   4 +
>>   .../pmu-events/arch/x86/haswellx/pipeline.json     |   4 +
>>   .../pmu-events/arch/x86/haswellx/uncore-cache.json |   2 +
>>   .../arch/x86/haswellx/uncore-interconnect.json     |  14 ++
>>   .../arch/x86/haswellx/uncore-memory.json           |   2 +
>>   .../pmu-events/arch/x86/haswellx/uncore-power.json |   1 +
>>   .../perf/pmu-events/arch/x86/icelake/pipeline.json |   4 +
>>   .../pmu-events/arch/x86/icelakex/pipeline.json     |   4 +
>>   .../pmu-events/arch/x86/icelakex/uncore-cache.json |   1 +
>>   .../arch/x86/icelakex/uncore-interconnect.json     |   1 +
>>   .../arch/x86/icelakex/uncore-memory.json           |   1 +
>>   .../pmu-events/arch/x86/icelakex/uncore-power.json |   1 +
>>   .../pmu-events/arch/x86/ivybridge/pipeline.json    |   3 +
>>   .../perf/pmu-events/arch/x86/ivytown/pipeline.json |   4 +
>>   .../pmu-events/arch/x86/ivytown/uncore-cache.json  |   2 +
>>   .../arch/x86/ivytown/uncore-interconnect.json      |  11 +
>>   .../pmu-events/arch/x86/ivytown/uncore-memory.json |   1 +
>>   .../pmu-events/arch/x86/ivytown/uncore-power.json  |   1 +
>>   .../pmu-events/arch/x86/jaketown/pipeline.json     |   4 +
>>   .../pmu-events/arch/x86/jaketown/uncore-cache.json |   2 +
>>   .../arch/x86/jaketown/uncore-interconnect.json     |  12 +
>>   .../arch/x86/jaketown/uncore-memory.json           |   1 +
>>   .../pmu-events/arch/x86/jaketown/uncore-power.json |   2 +
>>   .../arch/x86/knightslanding/pipeline.json          |   3 +
>>   .../arch/x86/knightslanding/uncore-cache.json      |   1 +
>>   .../arch/x86/knightslanding/uncore-memory.json     |   4 +
>>   .../pmu-events/arch/x86/meteorlake/pipeline.json   |   8 +
>>   .../pmu-events/arch/x86/sandybridge/pipeline.json  |   4 +
>>   .../arch/x86/sapphirerapids/pipeline.json          |   5 +
>>   .../pmu-events/arch/x86/sierraforest/pipeline.json |   4 +
>>   .../pmu-events/arch/x86/silvermont/pipeline.json   |   3 +
>>   .../perf/pmu-events/arch/x86/skylake/pipeline.json |   4 +
>>   .../pmu-events/arch/x86/skylakex/pipeline.json     |   4 +
>>   .../pmu-events/arch/x86/skylakex/uncore-cache.json |   2 +
>>   .../arch/x86/skylakex/uncore-interconnect.json     |   1 +
>>   .../pmu-events/arch/x86/skylakex/uncore-io.json    |   1 +
>>   .../arch/x86/skylakex/uncore-memory.json           |   1 +
>>   .../pmu-events/arch/x86/skylakex/uncore-power.json |   1 +
>>   .../pmu-events/arch/x86/snowridgex/pipeline.json   |   2 +
>>   .../arch/x86/snowridgex/uncore-cache.json          |   1 +
>>   .../arch/x86/snowridgex/uncore-interconnect.json   |   1 +
>>   .../arch/x86/snowridgex/uncore-memory.json         |   1 +
>>   .../arch/x86/snowridgex/uncore-power.json          |   1 +
>>   .../pmu-events/arch/x86/tigerlake/pipeline.json    |   5 +
>>   tools/perf/pmu-events/empty-pmu-events.c           |   8 +
>>   tools/perf/pmu-events/jevents.py                   |  21 +-
>>   tools/perf/tests/pmu-events.c                      |  64 ++++-
>>   tools/perf/util/metricgroup.c                      |   2 +-
>>   tools/perf/util/pmu.c                              |  33 ++-
>>   tools/perf/util/pmu.h                              |   1 +
>>   77 files changed, 679 insertions(+), 9 deletions(-)
>>   create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cmn/sys/cmn.json
>>   create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cmn/sys/metric.json
>>
Arnaldo Carvalho de Melo Sept. 6, 2023, 4:05 p.m. UTC | #3
Em Mon, Aug 21, 2023 at 04:36:09PM +0800, Jing Zhang escreveu:
> Changes since v6:
> - Supplement the omitted EventCode;
> - Keep the original way of ConfigCode;
> - Supplement the test in empty-pmu-events.c, so that the pmu event test
>   can succeed when build with NO_JEVENT=1.
> - Link: https://lore.kernel.org/all/1691394685-61240-1-git-send-email-renyu.zj@linux.alibaba.com/

Waiting for a v8, from what I saw there are several more review comments
to address, right?

- Arnaldo
 
> Jing Zhang (8):
>   perf pmu: "Compat" supports matching multiple identifiers
>   perf metric: "Compat" supports matching multiple identifiers
>   perf vendor events: Supplement the omitted EventCode
>   perf jevents: Support more event fields
>   perf test: Make matching_pmu effective
>   perf test: Add pmu-event test for "Compat" and new event_field.
>   perf jevents: Add support for Arm CMN PMU aliasing
>   perf vendor events: Add JSON metrics for Arm CMN
> 
>  .../pmu-events/arch/arm64/arm/cmn/sys/cmn.json     | 266 +++++++++++++++++++++
>  .../pmu-events/arch/arm64/arm/cmn/sys/metric.json  |  74 ++++++
>  .../pmu-events/arch/test/test_soc/sys/uncore.json  |   8 +
>  .../pmu-events/arch/x86/alderlake/pipeline.json    |   9 +
>  .../pmu-events/arch/x86/alderlaken/pipeline.json   |   3 +
>  .../pmu-events/arch/x86/broadwell/pipeline.json    |   4 +
>  .../pmu-events/arch/x86/broadwellde/pipeline.json  |   4 +
>  .../arch/x86/broadwellde/uncore-cache.json         |   2 +
>  .../arch/x86/broadwellde/uncore-interconnect.json  |   1 +
>  .../arch/x86/broadwellde/uncore-memory.json        |   1 +
>  .../arch/x86/broadwellde/uncore-power.json         |   1 +
>  .../pmu-events/arch/x86/broadwellx/pipeline.json   |   4 +
>  .../arch/x86/broadwellx/uncore-cache.json          |   2 +
>  .../arch/x86/broadwellx/uncore-interconnect.json   |  13 +
>  .../arch/x86/broadwellx/uncore-memory.json         |   2 +
>  .../arch/x86/broadwellx/uncore-power.json          |   1 +
>  .../pmu-events/arch/x86/cascadelakex/pipeline.json |   4 +
>  .../arch/x86/cascadelakex/uncore-cache.json        |   2 +
>  .../arch/x86/cascadelakex/uncore-interconnect.json |   1 +
>  .../arch/x86/cascadelakex/uncore-io.json           |   1 +
>  .../arch/x86/cascadelakex/uncore-memory.json       |   1 +
>  .../arch/x86/cascadelakex/uncore-power.json        |   1 +
>  .../pmu-events/arch/x86/elkhartlake/pipeline.json  |   2 +
>  .../pmu-events/arch/x86/goldmont/pipeline.json     |   3 +
>  .../pmu-events/arch/x86/goldmontplus/pipeline.json |   3 +
>  .../pmu-events/arch/x86/grandridge/pipeline.json   |   3 +
>  .../arch/x86/graniterapids/pipeline.json           |   4 +
>  .../perf/pmu-events/arch/x86/haswell/pipeline.json |   4 +
>  .../pmu-events/arch/x86/haswellx/pipeline.json     |   4 +
>  .../pmu-events/arch/x86/haswellx/uncore-cache.json |   2 +
>  .../arch/x86/haswellx/uncore-interconnect.json     |  14 ++
>  .../arch/x86/haswellx/uncore-memory.json           |   2 +
>  .../pmu-events/arch/x86/haswellx/uncore-power.json |   1 +
>  .../perf/pmu-events/arch/x86/icelake/pipeline.json |   4 +
>  .../pmu-events/arch/x86/icelakex/pipeline.json     |   4 +
>  .../pmu-events/arch/x86/icelakex/uncore-cache.json |   1 +
>  .../arch/x86/icelakex/uncore-interconnect.json     |   1 +
>  .../arch/x86/icelakex/uncore-memory.json           |   1 +
>  .../pmu-events/arch/x86/icelakex/uncore-power.json |   1 +
>  .../pmu-events/arch/x86/ivybridge/pipeline.json    |   3 +
>  .../perf/pmu-events/arch/x86/ivytown/pipeline.json |   4 +
>  .../pmu-events/arch/x86/ivytown/uncore-cache.json  |   2 +
>  .../arch/x86/ivytown/uncore-interconnect.json      |  11 +
>  .../pmu-events/arch/x86/ivytown/uncore-memory.json |   1 +
>  .../pmu-events/arch/x86/ivytown/uncore-power.json  |   1 +
>  .../pmu-events/arch/x86/jaketown/pipeline.json     |   4 +
>  .../pmu-events/arch/x86/jaketown/uncore-cache.json |   2 +
>  .../arch/x86/jaketown/uncore-interconnect.json     |  12 +
>  .../arch/x86/jaketown/uncore-memory.json           |   1 +
>  .../pmu-events/arch/x86/jaketown/uncore-power.json |   2 +
>  .../arch/x86/knightslanding/pipeline.json          |   3 +
>  .../arch/x86/knightslanding/uncore-cache.json      |   1 +
>  .../arch/x86/knightslanding/uncore-memory.json     |   4 +
>  .../pmu-events/arch/x86/meteorlake/pipeline.json   |   8 +
>  .../pmu-events/arch/x86/sandybridge/pipeline.json  |   4 +
>  .../arch/x86/sapphirerapids/pipeline.json          |   5 +
>  .../pmu-events/arch/x86/sierraforest/pipeline.json |   4 +
>  .../pmu-events/arch/x86/silvermont/pipeline.json   |   3 +
>  .../perf/pmu-events/arch/x86/skylake/pipeline.json |   4 +
>  .../pmu-events/arch/x86/skylakex/pipeline.json     |   4 +
>  .../pmu-events/arch/x86/skylakex/uncore-cache.json |   2 +
>  .../arch/x86/skylakex/uncore-interconnect.json     |   1 +
>  .../pmu-events/arch/x86/skylakex/uncore-io.json    |   1 +
>  .../arch/x86/skylakex/uncore-memory.json           |   1 +
>  .../pmu-events/arch/x86/skylakex/uncore-power.json |   1 +
>  .../pmu-events/arch/x86/snowridgex/pipeline.json   |   2 +
>  .../arch/x86/snowridgex/uncore-cache.json          |   1 +
>  .../arch/x86/snowridgex/uncore-interconnect.json   |   1 +
>  .../arch/x86/snowridgex/uncore-memory.json         |   1 +
>  .../arch/x86/snowridgex/uncore-power.json          |   1 +
>  .../pmu-events/arch/x86/tigerlake/pipeline.json    |   5 +
>  tools/perf/pmu-events/empty-pmu-events.c           |   8 +
>  tools/perf/pmu-events/jevents.py                   |  21 +-
>  tools/perf/tests/pmu-events.c                      |  64 ++++-
>  tools/perf/util/metricgroup.c                      |   2 +-
>  tools/perf/util/pmu.c                              |  33 ++-
>  tools/perf/util/pmu.h                              |   1 +
>  77 files changed, 679 insertions(+), 9 deletions(-)
>  create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cmn/sys/cmn.json
>  create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cmn/sys/metric.json
> 
> -- 
> 1.8.3.1
>
Jing Zhang Sept. 7, 2023, 2:42 a.m. UTC | #4
在 2023/9/7 上午12:05, Arnaldo Carvalho de Melo 写道:
> Em Mon, Aug 21, 2023 at 04:36:09PM +0800, Jing Zhang escreveu:
>> Changes since v6:
>> - Supplement the omitted EventCode;
>> - Keep the original way of ConfigCode;
>> - Supplement the test in empty-pmu-events.c, so that the pmu event test
>>   can succeed when build with NO_JEVENT=1.
>> - Link: https://lore.kernel.org/all/1691394685-61240-1-git-send-email-renyu.zj@linux.alibaba.com/
> 
> Waiting for a v8, from what I saw there are several more review comments
> to address, right?
> 

Yes, I will send v8 soon.

Thanks,
Jing

> - Arnaldo
>  
>> Jing Zhang (8):
>>   perf pmu: "Compat" supports matching multiple identifiers
>>   perf metric: "Compat" supports matching multiple identifiers
>>   perf vendor events: Supplement the omitted EventCode
>>   perf jevents: Support more event fields
>>   perf test: Make matching_pmu effective
>>   perf test: Add pmu-event test for "Compat" and new event_field.
>>   perf jevents: Add support for Arm CMN PMU aliasing
>>   perf vendor events: Add JSON metrics for Arm CMN
>>
>>  .../pmu-events/arch/arm64/arm/cmn/sys/cmn.json     | 266 +++++++++++++++++++++
>>  .../pmu-events/arch/arm64/arm/cmn/sys/metric.json  |  74 ++++++
>>  .../pmu-events/arch/test/test_soc/sys/uncore.json  |   8 +
>>  .../pmu-events/arch/x86/alderlake/pipeline.json    |   9 +
>>  .../pmu-events/arch/x86/alderlaken/pipeline.json   |   3 +
>>  .../pmu-events/arch/x86/broadwell/pipeline.json    |   4 +
>>  .../pmu-events/arch/x86/broadwellde/pipeline.json  |   4 +
>>  .../arch/x86/broadwellde/uncore-cache.json         |   2 +
>>  .../arch/x86/broadwellde/uncore-interconnect.json  |   1 +
>>  .../arch/x86/broadwellde/uncore-memory.json        |   1 +
>>  .../arch/x86/broadwellde/uncore-power.json         |   1 +
>>  .../pmu-events/arch/x86/broadwellx/pipeline.json   |   4 +
>>  .../arch/x86/broadwellx/uncore-cache.json          |   2 +
>>  .../arch/x86/broadwellx/uncore-interconnect.json   |  13 +
>>  .../arch/x86/broadwellx/uncore-memory.json         |   2 +
>>  .../arch/x86/broadwellx/uncore-power.json          |   1 +
>>  .../pmu-events/arch/x86/cascadelakex/pipeline.json |   4 +
>>  .../arch/x86/cascadelakex/uncore-cache.json        |   2 +
>>  .../arch/x86/cascadelakex/uncore-interconnect.json |   1 +
>>  .../arch/x86/cascadelakex/uncore-io.json           |   1 +
>>  .../arch/x86/cascadelakex/uncore-memory.json       |   1 +
>>  .../arch/x86/cascadelakex/uncore-power.json        |   1 +
>>  .../pmu-events/arch/x86/elkhartlake/pipeline.json  |   2 +
>>  .../pmu-events/arch/x86/goldmont/pipeline.json     |   3 +
>>  .../pmu-events/arch/x86/goldmontplus/pipeline.json |   3 +
>>  .../pmu-events/arch/x86/grandridge/pipeline.json   |   3 +
>>  .../arch/x86/graniterapids/pipeline.json           |   4 +
>>  .../perf/pmu-events/arch/x86/haswell/pipeline.json |   4 +
>>  .../pmu-events/arch/x86/haswellx/pipeline.json     |   4 +
>>  .../pmu-events/arch/x86/haswellx/uncore-cache.json |   2 +
>>  .../arch/x86/haswellx/uncore-interconnect.json     |  14 ++
>>  .../arch/x86/haswellx/uncore-memory.json           |   2 +
>>  .../pmu-events/arch/x86/haswellx/uncore-power.json |   1 +
>>  .../perf/pmu-events/arch/x86/icelake/pipeline.json |   4 +
>>  .../pmu-events/arch/x86/icelakex/pipeline.json     |   4 +
>>  .../pmu-events/arch/x86/icelakex/uncore-cache.json |   1 +
>>  .../arch/x86/icelakex/uncore-interconnect.json     |   1 +
>>  .../arch/x86/icelakex/uncore-memory.json           |   1 +
>>  .../pmu-events/arch/x86/icelakex/uncore-power.json |   1 +
>>  .../pmu-events/arch/x86/ivybridge/pipeline.json    |   3 +
>>  .../perf/pmu-events/arch/x86/ivytown/pipeline.json |   4 +
>>  .../pmu-events/arch/x86/ivytown/uncore-cache.json  |   2 +
>>  .../arch/x86/ivytown/uncore-interconnect.json      |  11 +
>>  .../pmu-events/arch/x86/ivytown/uncore-memory.json |   1 +
>>  .../pmu-events/arch/x86/ivytown/uncore-power.json  |   1 +
>>  .../pmu-events/arch/x86/jaketown/pipeline.json     |   4 +
>>  .../pmu-events/arch/x86/jaketown/uncore-cache.json |   2 +
>>  .../arch/x86/jaketown/uncore-interconnect.json     |  12 +
>>  .../arch/x86/jaketown/uncore-memory.json           |   1 +
>>  .../pmu-events/arch/x86/jaketown/uncore-power.json |   2 +
>>  .../arch/x86/knightslanding/pipeline.json          |   3 +
>>  .../arch/x86/knightslanding/uncore-cache.json      |   1 +
>>  .../arch/x86/knightslanding/uncore-memory.json     |   4 +
>>  .../pmu-events/arch/x86/meteorlake/pipeline.json   |   8 +
>>  .../pmu-events/arch/x86/sandybridge/pipeline.json  |   4 +
>>  .../arch/x86/sapphirerapids/pipeline.json          |   5 +
>>  .../pmu-events/arch/x86/sierraforest/pipeline.json |   4 +
>>  .../pmu-events/arch/x86/silvermont/pipeline.json   |   3 +
>>  .../perf/pmu-events/arch/x86/skylake/pipeline.json |   4 +
>>  .../pmu-events/arch/x86/skylakex/pipeline.json     |   4 +
>>  .../pmu-events/arch/x86/skylakex/uncore-cache.json |   2 +
>>  .../arch/x86/skylakex/uncore-interconnect.json     |   1 +
>>  .../pmu-events/arch/x86/skylakex/uncore-io.json    |   1 +
>>  .../arch/x86/skylakex/uncore-memory.json           |   1 +
>>  .../pmu-events/arch/x86/skylakex/uncore-power.json |   1 +
>>  .../pmu-events/arch/x86/snowridgex/pipeline.json   |   2 +
>>  .../arch/x86/snowridgex/uncore-cache.json          |   1 +
>>  .../arch/x86/snowridgex/uncore-interconnect.json   |   1 +
>>  .../arch/x86/snowridgex/uncore-memory.json         |   1 +
>>  .../arch/x86/snowridgex/uncore-power.json          |   1 +
>>  .../pmu-events/arch/x86/tigerlake/pipeline.json    |   5 +
>>  tools/perf/pmu-events/empty-pmu-events.c           |   8 +
>>  tools/perf/pmu-events/jevents.py                   |  21 +-
>>  tools/perf/tests/pmu-events.c                      |  64 ++++-
>>  tools/perf/util/metricgroup.c                      |   2 +-
>>  tools/perf/util/pmu.c                              |  33 ++-
>>  tools/perf/util/pmu.h                              |   1 +
>>  77 files changed, 679 insertions(+), 9 deletions(-)
>>  create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cmn/sys/cmn.json
>>  create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cmn/sys/metric.json
>>
>> -- 
>> 1.8.3.1
>>
>