Skip to content

Commit d3e2bb4

Browse files
captain5050acmel
authored andcommitted
perf metric: Fix metric_leader
Multiple events may have a metric_leader to aggregate into. This happens for uncore events where, for example, uncore_imc is expanded into uncore_imc_0, uncore_imc_1, etc. Such events all have the same metric_id and should aggregate into the first event. The change introducing metric_ids had a bug where the metric_id was compared to itself, creating an always true condition. Correct this by comparing the event in the metric_evlist and the metric_leader. Fixes: ec5c5b3 ("perf metric: Encode and use metric-id as qualifier") Signed-off-by: Ian Rogers <irogers@google.com> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Andi Kleen <ak@linux.intel.com> Cc: Jiri Olsa <jolsa@redhat.com> Cc: John Garry <john.garry@huawei.com> Cc: Mark Rutland <mark.rutland@arm.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Stephane Eranian <eranian@google.com> Link: http://lore.kernel.org/lkml/20220115062852.1959424-1-irogers@google.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
1 parent a6e6274 commit d3e2bb4

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

tools/perf/util/metricgroup.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -314,7 +314,7 @@ static int setup_metric_events(struct hashmap *ids,
314314
*/
315315
metric_id = evsel__metric_id(ev);
316316
evlist__for_each_entry_continue(metric_evlist, ev) {
317-
if (!strcmp(evsel__metric_id(metric_events[i]), metric_id))
317+
if (!strcmp(evsel__metric_id(ev), metric_id))
318318
ev->metric_leader = metric_events[i];
319319
}
320320
}

0 commit comments

Comments
 (0)