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

From: Jing Zhang
Date: Wed Aug 23 2023 - 22:34:31 EST




在 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@xxxxxxxxxxxxxxxxx/__;!!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
>>