Re: [PATCH v3] tools/perf/metricgroup: Fix printing event names of metric group with multiple events incase of overlapping events
From: Jiri Olsa
Date: Thu Feb 06 2020 - 13:45:33 EST
On Fri, Jan 31, 2020 at 10:55:22AM +0530, Kajol Jain wrote:
SNIP
> ev->metric_leader = metric_events[i];
> }
> + j++;
> }
> + ev = metric_events[i];
> + evlist_used[ev->idx] = true;
> }
>
> return metric_events[0];
> @@ -160,6 +161,9 @@ static int metricgroup__setup_events(struct list_head *groups,
> int ret = 0;
> struct egroup *eg;
> struct evsel *evsel;
> + bool evlist_used[perf_evlist->core.nr_entries];
> +
> + memset(evlist_used, 0, perf_evlist->core.nr_entries);
I know I posted this in the previous email, but are we sure bool
is always 1 byte? would sizeod(evlist_used) be safer?
other than that it looks ok
Andi, you're ok with this?
thanks,
jirka
>
> list_for_each_entry (eg, groups, nd) {
> struct evsel **metric_events;
> @@ -170,7 +174,7 @@ static int metricgroup__setup_events(struct list_head *groups,
> break;
> }
> evsel = find_evsel_group(perf_evlist, eg->ids, eg->idnum,
> - metric_events);
> + metric_events, evlist_used);
> if (!evsel) {
> pr_debug("Cannot resolve %s: %s\n",
> eg->metric_name, eg->metric_expr);
> --
> 2.21.0
>