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

John Garry john.garry at huawei.com
Fri Dec 17 02:19:31 PST 2021


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 at arm.com>

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 at localhost:~/linux/tools/perf> sudo ./perf stat --topdown  sleep 1
top down event configuration requires system-wide mode (-a)

john at 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 at localhost:~/linux/tools/perf>

---

Then my arm64 hip08 platform:

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



More information about the linux-arm-kernel mailing list