When there are multiple PMUs, differing by ordered suffixes, by
default only display one. This avoids repeated listing of events, in
particular when there are 10s of uncore PMUs. If "-v" is passed to
"perf list" then still list all PMUs.
Listing fewer PMU/event combinations helps speed the all PMU event
tests.
Before:
```
$ perf list
...
uncore_imc_free_running_0/data_read/ [Kernel PMU event]
uncore_imc_free_running_0/data_total/ [Kernel PMU event]
uncore_imc_free_running_0/data_write/ [Kernel PMU event]
uncore_imc_free_running_1/data_read/ [Kernel PMU event]
uncore_imc_free_running_1/data_total/ [Kernel PMU event]
uncore_imc_free_running_1/data_write/ [Kernel PMU event]
```
After:
```
$ perf list
...
uncore_imc_free_running/data_read/ [Kernel PMU event]
uncore_imc_free_running/data_total/ [Kernel PMU event]
uncore_imc_free_running/data_write/ [Kernel PMU event]
...
$ perf list -v
...
uncore_imc_free_running_0/data_read/ [Kernel PMU event]
uncore_imc_free_running_0/data_total/ [Kernel PMU event]
uncore_imc_free_running_0/data_write/ [Kernel PMU event]
uncore_imc_free_running_1/data_read/ [Kernel PMU event]
uncore_imc_free_running_1/data_total/ [Kernel PMU event]
uncore_imc_free_running_1/data_write/ [Kernel PMU event]
...
```
The PMUs are sorted by name then suffix as a part of this change.
v4: Rebase on top of lazy PMU changes. Ignore numeric ordering due to
gaps, suggested by Kan Liang <kan.liang@linux.intel.com>. Fold
patches 2 & 3 as suggested by John Garry <john.g.garry@oracle.com>
(done by accident as part of rebasing).
v3: Add detail to patch 1 sorting commit message about the suffix and
why sorting is necessary.
v2: List all PMUs when "-v" is passed as suggested by John Garry
<john.g.garry@oracle.com>.
Ian Rogers (2):
perf pmus: Sort pmus by name then suffix
perf pmus: Skip duplicate PMUs and don't print list suffix by default
tools/perf/builtin-list.c | 8 +++
tools/perf/util/pmu.c | 17 +++--
tools/perf/util/pmu.h | 3 +-
tools/perf/util/pmus.c | 102 +++++++++++++++++++++++++++++-
tools/perf/util/pmus.h | 2 +
tools/perf/util/print-events.h | 1 +
tools/perf/util/s390-sample-raw.c | 3 +-
7 files changed, 126 insertions(+), 10 deletions(-)
--
2.42.0.rc2.253.gd59a3bf2b4-goog