mirror of
https://github.com/torvalds/linux.git
synced 2026-05-30 18:13:41 +02:00
perf tools: Always uniquify event names
evlist__uniquify_evsel_names() only gets called in __parse_events() if verbose is > 0. This means that the auto added "slots" events stay as "slots" rather than being expanded to "cpu_core/slots/" unless Perf is run in verbose mode. This is invisible to users when running Perf stat because evlist__print_counters() always calls it regardless of verbose mode before displaying. The only thing this seems to affect is the test "Parsing of all PMU events from sysfs" which fails when not run in verbose mode. test__checkevent_pmu_events() always expects event names to be prefixed with the pmu name, but this only happens for "slots" events after evlist__uniquify_evsel_names() is called. One fix could be to relax the test to accept the non prefixed name in normal mode. But seeing as Perf stat uniquifies unconditionally, make parse_events() do the same. This fixes the following test failure: $ perf test "Parsing of all PMU events from sysfs" 5.2: Parsing of all PMU events from sysfs : FAILED! $ Reviewed-by: Ian Rogers <irogers@google.com> Signed-off-by: James Clark <james.clark@linaro.org> Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Ingo Molnar <mingo@redhat.com> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Leo Yan <leo.yan@arm.com> Cc: Mark Rutland <mark.rutland@arm.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Peter Zijlstra <peterz@infradead.org> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
dc7fb075f7
commit
9bb93278c3
|
|
@ -2247,12 +2247,12 @@ int __parse_events(struct evlist *evlist, const char *str, const char *pmu_filte
|
|||
evlist__splice_list_tail(evlist, &parse_state.list);
|
||||
|
||||
if (ret2 && warn_if_reordered && !parse_state.wild_card_pmus) {
|
||||
evlist__uniquify_evsel_names(evlist, &stat_config);
|
||||
pr_warning("WARNING: events were regrouped to match PMUs\n");
|
||||
|
||||
if (verbose > 0) {
|
||||
struct strbuf sb = STRBUF_INIT;
|
||||
|
||||
evlist__uniquify_evsel_names(evlist, &stat_config);
|
||||
evlist__format_evsels(evlist, &sb, 2048);
|
||||
pr_debug("evlist after sorting/fixing: '%s'\n", sb.buf);
|
||||
strbuf_release(&sb);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user