diff options
author | Ilkka Koskinen <ilkka@os.amperecomputing.com> | 2023-09-13 16:39:41 -0700 |
---|---|---|
committer | Will Deacon <will@kernel.org> | 2023-10-10 19:10:54 +0100 |
commit | 53a810ad3c5cde674cac71e629e6d10bfc9d838c (patch) | |
tree | bcda97e76425d6be5570bb26e3e6d19afd4c9f11 /Documentation/admin-guide | |
parent | 647d5c5a9e7672e285f54f0e141ee759e69382f2 (diff) | |
download | linux-stable-53a810ad3c5cde674cac71e629e6d10bfc9d838c.tar.gz linux-stable-53a810ad3c5cde674cac71e629e6d10bfc9d838c.tar.bz2 linux-stable-53a810ad3c5cde674cac71e629e6d10bfc9d838c.zip |
perf: arm_cspmu: ampere_cspmu: Add support for Ampere SoC PMU
Ampere SoC PMU follows CoreSight PMU architecture. It uses implementation
specific registers to filter events rather than PMEVFILTnR registers.
Signed-off-by: Ilkka Koskinen <ilkka@os.amperecomputing.com>
Link: https://lore.kernel.org/r/20230913233941.9814-5-ilkka@os.amperecomputing.com
[will: Include linux/io.h in ampere_cspmu.c for writel()]
Signed-off-by: Will Deacon <will@kernel.org>
Diffstat (limited to 'Documentation/admin-guide')
-rw-r--r-- | Documentation/admin-guide/perf/ampere_cspmu.rst | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/Documentation/admin-guide/perf/ampere_cspmu.rst b/Documentation/admin-guide/perf/ampere_cspmu.rst new file mode 100644 index 000000000000..94f93f5aee6c --- /dev/null +++ b/Documentation/admin-guide/perf/ampere_cspmu.rst @@ -0,0 +1,29 @@ +.. SPDX-License-Identifier: GPL-2.0 + +============================================ +Ampere SoC Performance Monitoring Unit (PMU) +============================================ + +Ampere SoC PMU is a generic PMU IP that follows Arm CoreSight PMU architecture. +Therefore, the driver is implemented as a submodule of arm_cspmu driver. At the +first phase it's used for counting MCU events on AmpereOne. + + +MCU PMU events +-------------- + +The PMU driver supports setting filters for "rank", "bank", and "threshold". +Note, that the filters are per PMU instance rather than per event. + + +Example for perf tool use:: + + / # perf list ampere + + ampere_mcu_pmu_0/act_sent/ [Kernel PMU event] + <...> + ampere_mcu_pmu_1/rd_sent/ [Kernel PMU event] + <...> + + / # perf stat -a -e ampere_mcu_pmu_0/act_sent,bank=5,rank=3,threshold=2/,ampere_mcu_pmu_1/rd_sent/ \ + sleep 1 |