| From | Jiri Olsa <> | Subject | [PATCH 12/19] perf metric: Add events for the current list | Date | Sun, 19 Jul 2020 20:13:13 +0200 |
| |
There's no need to iterate the whole list of groups, when adding new events. The currently created groups are the ones we want to add.
Signed-off-by: Jiri Olsa <jolsa@kernel.org> --- tools/perf/util/metricgroup.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/tools/perf/util/metricgroup.c b/tools/perf/util/metricgroup.c index bb5757b9419d..332414d93f7a 100644 --- a/tools/perf/util/metricgroup.c +++ b/tools/perf/util/metricgroup.c @@ -813,6 +813,7 @@ static int metricgroup__add_metric(const char *metric, bool metric_no_group, { struct pmu_event *pe; struct egroup *eg; + LIST_HEAD(list); int i, ret; bool has_match = false; @@ -820,7 +821,7 @@ static int metricgroup__add_metric(const char *metric, bool metric_no_group, has_match = true; eg = NULL; - ret = add_metric(group_list, pe, metric_no_group, &eg); + ret = add_metric(&list, pe, metric_no_group, &eg); if (ret) return ret; @@ -829,7 +830,7 @@ static int metricgroup__add_metric(const char *metric, bool metric_no_group, * included in the expression. */ ret = resolve_metric(eg, metric_no_group, - group_list, map); + &list, map); if (ret) return ret; } @@ -838,7 +839,7 @@ static int metricgroup__add_metric(const char *metric, bool metric_no_group, if (!has_match) return -EINVAL; - list_for_each_entry(eg, group_list, nd) { + list_for_each_entry(eg, &list, nd) { if (events->len > 0) strbuf_addf(events, ","); @@ -850,6 +851,8 @@ static int metricgroup__add_metric(const char *metric, bool metric_no_group, &eg->pctx); } } + + list_splice(&list, group_list); return 0; } -- 2.25.4
|