Messages in this thread | | | Date | Wed, 31 Aug 2022 09:30:03 -0300 | From | Arnaldo Carvalho de Melo <> | 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@google.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
| |