[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <Yw9US7HG0hDsc+FA@kernel.org>
Date: Wed, 31 Aug 2022 09:30:03 -0300
From: Arnaldo Carvalho de Melo <acme@...nel.org>
To: Ian Rogers <irogers@...gle.com>
Cc: Peter Zijlstra <peterz@...radead.org>,
Ingo Molnar <mingo@...hat.com>,
Mark Rutland <mark.rutland@....com>,
Alexander Shishkin <alexander.shishkin@...ux.intel.com>,
Jiri Olsa <jolsa@...nel.org>,
Namhyung Kim <namhyung@...nel.org>,
Andi Kleen <ak@...ux.intel.com>,
Kan Liang <kan.liang@...ux.intel.com>,
Thomas Richter <tmricht@...ux.ibm.com>,
James Clark <james.clark@....com>,
Miaoqian Lin <linmq006@...il.com>,
John Garry <john.garry@...wei.com>,
Zhengjun Xing <zhengjun.xing@...ux.intel.com>,
Florian Fischer <florian.fischer@...q.space>,
linux-perf-users@...r.kernel.org, linux-kernel@...r.kernel.org,
perry.taylor@...el.com, caleb.biggers@...el.com,
kshipra.bopardikar@...el.com, Stephane Eranian <eranian@...gle.com>
Subject: Re: [PATCH v1 2/8] perf metric: Return early if no CPU PMU table
exists
Em Tue, Aug 30, 2022 at 09:48:40AM -0700, Ian Rogers escreveu:
> Previous behavior is to segfault if there is no CPU PMU table and a
> metric is sought. To reproduce compile with NO_JEVENTS=1 then request
> a metric, for example, "perf stat -M IPC true".
>
> Fixes: 00facc760903 ("perf jevents: Switch build to use jevents.py")
> Signed-off-by: Ian Rogers <irogers@...gle.com>
Before:
$ make -k NO_JEVENTS=1 BUILD_BPF_SKEL=1 O=/tmp/build/perf-urgent -C tools/perf install-bin
$ perf stat -M IPC true
Segmentation fault (core dumped)
$
After:
$ perf stat -M IPC true
Usage: perf stat [<options>] [<command>]
-M, --metrics <metric/metric group list>
monitor specified metrics or metric groups (separated by ,)
$
Better, but perhaps we could provide some better message as to why the
metric provided isn't acceptable?
Anyway, applied to perf/urgent.
Thanks,
- Arnaldo
> ---
> tools/perf/util/metricgroup.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/tools/perf/util/metricgroup.c b/tools/perf/util/metricgroup.c
> index ad5cacdecd81..18aae040d61d 100644
> --- a/tools/perf/util/metricgroup.c
> +++ b/tools/perf/util/metricgroup.c
> @@ -1655,6 +1655,9 @@ int metricgroup__parse_groups(const struct option *opt,
> struct evlist *perf_evlist = *(struct evlist **)opt->value;
> const struct pmu_events_table *table = pmu_events_table__find();
>
> + if (!table)
> + return -EINVAL;
> +
> return parse_groups(perf_evlist, str, metric_no_group,
> metric_no_merge, NULL, metric_events, table);
> }
> --
> 2.37.2.672.g94769d06f0-goog
--
- Arnaldo
Powered by blists - more mailing lists