Re: [PATCH 2/3] perf list: Do not print 'Metric Groups:' unnecessarily

From: Arnaldo Carvalho de Melo
Date: Wed Sep 09 2020 - 10:58:45 EST


Em Wed, Sep 09, 2020 at 02:58:48PM +0900, Namhyung Kim escreveu:
> It was printed unconditionally even if nothing is printed.
> Check if the output list empty when filter is given.
>
> Before:
> $ ./perf list duration
>
> List of pre-defined events (to be used in -e):
>
> duration_time [Tool event]
>
> Metric Groups:
>
> After:
> $ ./perf list duration
>
> List of pre-defined events (to be used in -e):
>
> duration_time [Tool event]

> Signed-off-by: Namhyung Kim <namhyung@xxxxxxxxxx>

---

Thanks, applied.

- Arnaldo
>
> diff --git a/tools/perf/util/metricgroup.c b/tools/perf/util/metricgroup.c
> index 8831b964288f..38464d7d2d63 100644
> --- a/tools/perf/util/metricgroup.c
> +++ b/tools/perf/util/metricgroup.c
> @@ -535,10 +535,12 @@ void metricgroup__print(bool metrics, bool metricgroups, char *filter,
> }
> }
>
> - if (metricgroups && !raw)
> - printf("\nMetric Groups:\n\n");
> - else if (metrics && !raw)
> - printf("\nMetrics:\n\n");
> + if (!filter || !rblist__empty(&groups)) {
> + if (metricgroups && !raw)
> + printf("\nMetric Groups:\n\n");
> + else if (metrics && !raw)
> + printf("\nMetrics:\n\n");
> + }
>
> for (node = rb_first_cached(&groups.entries); node; node = next) {
> struct mep *me = container_of(node, struct mep, nd);
> --
> 2.28.0.526.ge36021eeef-goog
>

--

- Arnaldo