diff options
author | Jiri Olsa <jolsa@kernel.org> | 2018-06-06 18:15:05 -0400 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2018-06-07 14:50:14 -0400 |
commit | f7fa827f5f432a0b1f34e10fc49da93aeef9f817 (patch) | |
tree | ec72af9f888a069277fc504116a871af13996818 /tools/perf | |
parent | c9d366287042489090da0391318df528bdce9941 (diff) |
perf tools: Fix error index for pmu event parser
For events we provide specific error message we need to set error column
index, PMU parser is missing that, adding it.
Before:
$ perf stat -e cycles,krava/cycles/ kill
event syntax error: 'cycles,krava/cycles/'
\___ Cannot find PMU `krava'. Missing kernel support?
After:
$ perf stat -e cycles,krava/cycles/ kill
event syntax error: 'cycles,krava/cycles/'
\___ Cannot find PMU `krava'. Missing kernel support?
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Andi Kleen <andi@firstfloor.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <frederic@kernel.org>
Cc: Milian Wolff <milian.wolff@kdab.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/r/20180606221513.11302-3-jolsa@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf')
-rw-r--r-- | tools/perf/util/parse-events.y | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/tools/perf/util/parse-events.y b/tools/perf/util/parse-events.y index 155d2570274f..da8fe57691b8 100644 --- a/tools/perf/util/parse-events.y +++ b/tools/perf/util/parse-events.y | |||
@@ -227,11 +227,16 @@ event_def: event_pmu | | |||
227 | event_pmu: | 227 | event_pmu: |
228 | PE_NAME opt_pmu_config | 228 | PE_NAME opt_pmu_config |
229 | { | 229 | { |
230 | struct parse_events_state *parse_state = _parse_state; | ||
231 | struct parse_events_error *error = parse_state->error; | ||
230 | struct list_head *list, *orig_terms, *terms; | 232 | struct list_head *list, *orig_terms, *terms; |
231 | 233 | ||
232 | if (parse_events_copy_term_list($2, &orig_terms)) | 234 | if (parse_events_copy_term_list($2, &orig_terms)) |
233 | YYABORT; | 235 | YYABORT; |
234 | 236 | ||
237 | if (error) | ||
238 | error->idx = @1.first_column; | ||
239 | |||
235 | ALLOC_LIST(list); | 240 | ALLOC_LIST(list); |
236 | if (parse_events_add_pmu(_parse_state, list, $1, $2, false, false)) { | 241 | if (parse_events_add_pmu(_parse_state, list, $1, $2, false, false)) { |
237 | struct perf_pmu *pmu = NULL; | 242 | struct perf_pmu *pmu = NULL; |