mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-20 11:13:58 +08:00
perf stat: Fix metrics with --no-merge
Since Fixes:8c5421c016
("perf pmu: Display pmu name when printing unmerged events in stat") using --no-merge adds the PMU name to the evsel name. This breaks the metric value lookup because the parser doesn't know about this. Remove the extra postfixes for the metric evaluation. Signed-off-by: Andi Kleen <ak@linux.intel.com> Acked-by: Jiri Olsa <jolsa@kernel.org> Cc: Agustin Vega-Frias <agustinv@codeaurora.org> Cc: Kan Liang <kan.liang@linux.intel.com> Fixes:8c5421c016
("perf pmu: Display pmu name when printing unmerged events in stat") Link: http://lkml.kernel.org/r/20190624193711.35241-5-andi@firstfloor.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
2f87f33f42
commit
e3a9427323
@ -724,6 +724,7 @@ static void generic_metric(struct perf_stat_config *config,
|
||||
double ratio;
|
||||
int i;
|
||||
void *ctxp = out->ctx;
|
||||
char *n, *pn;
|
||||
|
||||
expr__ctx_init(&pctx);
|
||||
expr__add_id(&pctx, name, avg);
|
||||
@ -743,7 +744,19 @@ static void generic_metric(struct perf_stat_config *config,
|
||||
stats = &v->stats;
|
||||
scale = 1.0;
|
||||
}
|
||||
expr__add_id(&pctx, metric_events[i]->name, avg_stats(stats)*scale);
|
||||
|
||||
n = strdup(metric_events[i]->name);
|
||||
if (!n)
|
||||
return;
|
||||
/*
|
||||
* This display code with --no-merge adds [cpu] postfixes.
|
||||
* These are not supported by the parser. Remove everything
|
||||
* after the space.
|
||||
*/
|
||||
pn = strchr(n, ' ');
|
||||
if (pn)
|
||||
*pn = 0;
|
||||
expr__add_id(&pctx, n, avg_stats(stats)*scale);
|
||||
}
|
||||
if (!metric_events[i]) {
|
||||
const char *p = metric_expr;
|
||||
@ -760,6 +773,9 @@ static void generic_metric(struct perf_stat_config *config,
|
||||
(metric_name ? metric_name : name) : "", 0);
|
||||
} else
|
||||
print_metric(config, ctxp, NULL, NULL, "", 0);
|
||||
|
||||
for (i = 1; i < pctx.num_ids; i++)
|
||||
free((void *)pctx.ids[i].name);
|
||||
}
|
||||
|
||||
void perf_stat__print_shadow_stats(struct perf_stat_config *config,
|
||||
|
Loading…
Reference in New Issue
Block a user