[PATCH RFC 0/9] perf tool: sys event metric support re-write

Namhyung Kim namhyung at kernel.org
Thu Jun 29 15:08:30 PDT 2023


Hello,

On Wed, Jun 28, 2023 at 3:30 AM John Garry <john.g.garry at oracle.com> wrote:
>
> The current sys event metric support has some issues, like:
> - It is broken that we only match a metric based on PMU compat, but not
>   Unit as well, as reported by Jing Zhang <renyu.zj at linux.alibaba.com>
> - No real self-test support
> - Not able to use resolvable metrics
> - Need to specify event PMU Unit and Compat for metric, which should not
>   be necessary
>
> This series changes sys event metric support to match metrics based on
> evaluating each term in the metric expression and then ensuring it
> matches an event from the same associated pmu_sys_events table.
>
> Why an RFC?
> - Even though main motivation here was to improve self-test support, that
>   has proved quite tricky and nothing has been added yet.
>   My desire is to test the feature that we match metrics for a specific
>   SoC when PMUs with matching HW identifier are present. So I would hope
>   to add sys metrics for many SoCs in ../pmu-events/arch/test/
> - I still need to suppress logs from metricgroup_sys_metric_supported()
>   indirect calls to functions like parse_events_multi_pmu_add(),
>   generating logs like
>   "smmuv3_pmcg.wr_sent_sp -> smmuv3_pmcg_50/event=0x86/" - we should only
>   see those logs for when really adding the metric in calling add_metric()
>
> Based on 82fe2e45cdb0 (acme/tmp.perf/core, acme/tmp.perf-tools-next, acme/perf/core, acme/perf-tools-next) perf pmus: Check if we can encode the PMU number in perf_event_attr.type

We moved to new repos from acme to perf/perf-tools and perf/perf-tools-next.
You'd better rebase the series onto perf-tools-next (branch name is the same).

Thanks,
Namhyung


>
> John Garry (9):
>   perf metrics: Delete metricgroup_add_iter_data.table
>   perf metrics: Don't iter sys metrics if we already found a CPU match
>   perf metrics: Pass cpu and sys tables to metricgroup__add_metric()
>   perf jevents: Add sys_events_find_events_table()
>   perf pmu: Refactor pmu_add_sys_aliases_iter_fn()
>   perf metrics: Add metricgroup_sys_metric_supported()
>   perf metrics: Test metric match in metricgroup__sys_event_iter()
>   perf metrics: Stop metricgroup__add_metric_sys_event_iter if already
>     matched
>   perf vendor events arm64: Remove unnecessary metric Unit and Compat
>     specifiers
>
>  .../arm64/freescale/imx8mm/sys/metrics.json   |   4 -
>  .../arm64/freescale/imx8mn/sys/metrics.json   |   4 -
>  .../arm64/freescale/imx8mq/sys/metrics.json   |   4 -
>  .../arm64/hisilicon/hip09/sys/uncore-cpa.json |   4 -
>  tools/perf/pmu-events/empty-pmu-events.c      |   6 +
>  tools/perf/pmu-events/jevents.py              |  11 ++
>  tools/perf/pmu-events/pmu-events.h            |   3 +
>  tools/perf/tests/expand-cgroup.c              |   2 +-
>  tools/perf/tests/parse-metric.c               |   2 +-
>  tools/perf/tests/pmu-events.c                 |  29 ++-
>  tools/perf/util/metricgroup.c                 | 182 +++++++++++++++---
>  tools/perf/util/metricgroup.h                 |   3 +-
>  tools/perf/util/pmu.c                         |  20 +-
>  tools/perf/util/pmu.h                         |   2 +
>  14 files changed, 220 insertions(+), 56 deletions(-)
>
> --
> 2.35.3
>



More information about the linux-arm-kernel mailing list