lkml.org 
[lkml]   [2022]   [Aug]   [31]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [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

    \
     
     \ /
      Last update: 2022-08-31 14:31    [W:2.660 / U:0.064 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site