On 09/05/2017 11:08 AM, Jack Henschel wrote: > This patch improves the error message of the perf events parser > when the PMU hardware does not support address filters. > > Previously, the perf returned the following error: >> --filter option should follow a -e tracepoint or HW tracer option > This implies there is some syntax error present in the command line, > which is not true. Rather, notify the user that the CPU does not have > support for this feature. > > For example, Intel chips based on the Broadwell micro-archticture have > the Intel PT PMU, but do not support address filtering. > > Signed-off-by: Jack Henschel <[email protected]> > --- > tools/perf/util/parse-events.c | 20 ++++++++++---------- > 1 file changed, 10 insertions(+), 10 deletions(-) > > diff --git a/tools/perf/util/parse-events.c b/tools/perf/util/parse-events.c > index f44aeba51d1f..672b6d9423e9 100644 > --- a/tools/perf/util/parse-events.c > +++ b/tools/perf/util/parse-events.c > @@ -1833,8 +1833,11 @@ static int set_filter(struct perf_evsel *evsel, const > void *arg) > int nr_addr_filters = 0; > struct perf_pmu *pmu = NULL; > > - if (evsel == NULL) > - goto err; > + if (evsel == NULL) { > + fprintf(stderr, > + "--filter option should follow a -e tracepoint or HW > tracer option\n"); > + return -1; > + } > > if (evsel->attr.type == PERF_TYPE_TRACEPOINT) { > if (perf_evsel__append_tp_filter(evsel, str) < 0) { > @@ -1856,8 +1859,11 @@ static int set_filter(struct perf_evsel *evsel, const > void *arg) > perf_pmu__scan_file(pmu, "nr_addr_filters", > "%d", &nr_addr_filters); > > - if (!nr_addr_filters) > - goto err; > + if (!nr_addr_filters) { > + fprintf(stderr, > + "This CPU does not support address filtering\n"); > + return -1; > + } > > if (perf_evsel__append_addr_filter(evsel, str) < 0) { > fprintf(stderr, > @@ -1866,12 +1872,6 @@ static int set_filter(struct perf_evsel *evsel, const > void *arg) > } > > return 0; > - > -err: > - fprintf(stderr, > - "--filter option should follow a -e tracepoint or HW tracer > option\n"); > - > - return -1; > } > > int parse_filter(const struct option *opt, const char *str, >
Is there any interest in this patch? Did it get lost? Greetings Jack
signature.asc
Description: OpenPGP digital signature

