Re: [RFC PATCH 1/1] perf arm64: Implement --topdown with metrics

From: John Garry
Date: Fri Dec 17 2021 - 05:20:06 EST


On 14/12/2021 18:42, Andrew Kilroy wrote:
This patch implements the --topdown option by making use of metrics to
dictate what counters are obtained in order to show the various topdown
columns, e.g. Frontend Bound, Backend Bound, Retiring and Bad
Speculation.

The MetricGroup name is used to identify which set of metrics are to be
shown. For the moment use TopDownL1 and enable for arm64

Signed-off-by: Andrew Kilroy<andrew.kilroy@xxxxxxx>

This works in that it gives results, but does not supply the same output format as for x86 nor has same restrictions in usage (-a commandline required, for example, below).

For my x86 broadwell:

john@localhost:~/linux/tools/perf> sudo ./perf stat --topdown sleep 1
top down event configuration requires system-wide mode (-a)

john@localhost:~/linux/tools/perf> sudo ./perf stat --topdown -a sleep 1
Performance counter stats for 'system wide':

retiring bad speculation frontend bound backend bound
S0-D0-C0 2 29.2% 6.3% 37.4% 27.1%
S0-D0-C1 2 20.4% 6.2% 42.1% 31.3%

0.998007338 seconds time elapsed

john@localhost:~/linux/tools/perf>

---

Then my arm64 hip08 platform:

john@debian:~/kernel-dev/tools/perf$ sudo ./perf stat --topdown sleep 1

Performance counter stats for 'sleep 1':

retiring bad_speculation backend_bound frontend_bound
0.19 0.17 0.27 0.37

1.000832714 seconds time elapsed

0.000891000 seconds user
0.000000000 seconds sys

And there is no colouring for results which are above/below standard thresholds (see stat-shadow.c:get_radio_color()).

My impression is that we're not plugging the results from metricgroup__parse_groups_to_evlist() into the --topdown print functionality properly.

Thanks,
John