Re: [PATCH v7 2/8] perf metric: "Compat" supports matching multiple identifiers

From: Ian Rogers
Date: Fri Aug 25 2023 - 00:17:04 EST


On Mon, Aug 21, 2023 at 1:36 AM Jing Zhang <renyu.zj@xxxxxxxxxxxxxxxxx> wrote:
>
> The jevent "Compat" is used for uncore PMU alias or metric definitions.
>
> The same PMU driver has different PMU identifiers due to different
> hardware versions and types, but they may have some common PMU metric.
> Since a Compat value can only match one identifier, when adding the
> same metric to PMUs with different identifiers, each identifier needs
> to be defined once, which is not streamlined enough.
>
> So let "Compat" supports matching multiple identifiers for uncore PMU
> metric.
>
> Signed-off-by: Jing Zhang <renyu.zj@xxxxxxxxxxxxxxxxx>
> Reviewed-by: John Garry <john.g.garry@xxxxxxxxxx>

Reviewed-by: Ian Rogers <irogers@xxxxxxxxxx>

Thanks,
Ian

> ---
> tools/perf/util/metricgroup.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/perf/util/metricgroup.c b/tools/perf/util/metricgroup.c
> index 5e9c657..ff81bc5 100644
> --- a/tools/perf/util/metricgroup.c
> +++ b/tools/perf/util/metricgroup.c
> @@ -477,7 +477,7 @@ static int metricgroup__sys_event_iter(const struct pmu_metric *pm,
>
> while ((pmu = perf_pmu__scan(pmu))) {
>
> - if (!pmu->id || strcmp(pmu->id, pm->compat))
> + if (!pmu->id || !pmu_uncore_identifier_match(pmu->id, pm->compat))
> continue;
>
> return d->fn(pm, table, d->data);
> --
> 1.8.3.1
>