perf stat: Exit perf stat if parse groups fails
[ Upstream commit 0713ab3bd169da82c35eefd012b07b715e4ebcf7 ] Metrics were added by a callback but commita4b8cfcabb
("perf stat: Delay metric parsing") postponed this to allow optimizations based on the CPU configuration. In doing so it stopped errors in metric parsing from causing 'perf stat' termination. This change adds the termination for bad metric names back in. Fixes:a4b8cfcabb
("perf stat: Delay metric parsing") Reported-by: Arnaldo Carvalho de Melo <acme@redhat.com> Signed-off-by: Ian Rogers <irogers@google.com> Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com> Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Ian Rogers <irogers@google.com> Cc: Ingo Molnar <mingo@redhat.com> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Mark Rutland <mark.rutland@arm.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Peter Zijlstra <peterz@infradead.org> Closes: https://lore.kernel.org/lkml/ZXByT1K6enTh2EHT@kernel.org/ Link: https://lore.kernel.org/r/20231206183533.972028-1-irogers@google.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
9cc93a61cd
commit
ac95df46de
|
@ -2695,15 +2695,19 @@ int cmd_stat(int argc, const char **argv)
|
|||
*/
|
||||
if (metrics) {
|
||||
const char *pmu = parse_events_option_args.pmu_filter ?: "all";
|
||||
int ret = metricgroup__parse_groups(evsel_list, pmu, metrics,
|
||||
stat_config.metric_no_group,
|
||||
stat_config.metric_no_merge,
|
||||
stat_config.metric_no_threshold,
|
||||
stat_config.user_requested_cpu_list,
|
||||
stat_config.system_wide,
|
||||
&stat_config.metric_events);
|
||||
|
||||
metricgroup__parse_groups(evsel_list, pmu, metrics,
|
||||
stat_config.metric_no_group,
|
||||
stat_config.metric_no_merge,
|
||||
stat_config.metric_no_threshold,
|
||||
stat_config.user_requested_cpu_list,
|
||||
stat_config.system_wide,
|
||||
&stat_config.metric_events);
|
||||
zfree(&metrics);
|
||||
if (ret) {
|
||||
status = ret;
|
||||
goto out;
|
||||
}
|
||||
}
|
||||
|
||||
if (add_default_attributes())
|
||||
|
|
Loading…
Reference in New Issue