On Sun, Jul 19, 2020 at 11:14 AM Jiri Olsa <jo...@kernel.org> wrote:
>
> 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 <jo...@kernel.org>

Acked-by: Ian Rogers <irog...@google.com>

Thanks,
Ian

> ---
>  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
>

Reply via email to