Skip to content

Commit c2b2481

Browse files
JiShengTeohwilldeacon
authored andcommitted
perf: starfive: Add StarLink PMU support
This patch adds support for StarFive's StarLink PMU (Performance Monitor Unit). StarLink PMU integrates one or more CPU cores with a shared L3 memory system. The PMU supports overflow interrupt, up to 16 programmable 64bit event counters, and an independent 64bit cycle counter. StarLink PMU is accessed via MMIO. Example Perf stat output: [root@user]# perf stat -a -e /starfive_starlink_pmu/cycles/ \ -e /starfive_starlink_pmu/read_miss/ \ -e /starfive_starlink_pmu/read_hit/ \ -e /starfive_starlink_pmu/release_request/ \ -e /starfive_starlink_pmu/write_hit/ \ -e /starfive_starlink_pmu/write_miss/ \ -e /starfive_starlink_pmu/write_request/ \ -e /starfive_starlink_pmu/writeback/ \ -e /starfive_starlink_pmu/read_request/ \ -- openssl speed rsa2048 Doing 2048 bits private rsa's for 10s: 5 2048 bits private RSA's in 2.84s Doing 2048 bits public rsa's for 10s: 169 2048 bits public RSA's in 2.42s version: 3.0.11 built on: Tue Sep 19 13:02:31 2023 UTC options: bn(64,64) CPUINFO: N/A sign verify sign/s verify/s rsa 2048 bits 0.568000s 0.014320s 1.8 69.8 ///////// Performance counter stats for 'system wide': 649991998 starfive_starlink_pmu/cycles/ 1009690 starfive_starlink_pmu/read_miss/ 1079750 starfive_starlink_pmu/read_hit/ 2089405 starfive_starlink_pmu/release_request/ 129 starfive_starlink_pmu/write_hit/ 70 starfive_starlink_pmu/write_miss/ 194 starfive_starlink_pmu/write_request/ 150080 starfive_starlink_pmu/writeback/ 2089423 starfive_starlink_pmu/read_request/ 27.062755678 seconds time elapsed Signed-off-by: Ji Sheng Teoh <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Will Deacon <[email protected]>
1 parent 89a0329 commit c2b2481

File tree

3 files changed

+652
-0
lines changed

3 files changed

+652
-0
lines changed

drivers/perf/Kconfig

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,15 @@ config RISCV_PMU_SBI
8686
full perf feature support i.e. counter overflow, privilege mode
8787
filtering, counter configuration.
8888

89+
config STARFIVE_STARLINK_PMU
90+
depends on ARCH_STARFIVE || COMPILE_TEST
91+
bool "StarFive StarLink PMU"
92+
help
93+
Provide support for StarLink Performance Monitor Unit.
94+
StarLink Performance Monitor Unit integrates one or more cores with
95+
an L3 memory system. The L3 cache events are added into perf event
96+
subsystem, allowing monitoring of various L3 cache perf events.
97+
8998
config ARM_PMU_ACPI
9099
depends on ARM_PMU && ACPI
91100
def_bool y

drivers/perf/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ obj-$(CONFIG_QCOM_L3_PMU) += qcom_l3_pmu.o
1515
obj-$(CONFIG_RISCV_PMU) += riscv_pmu.o
1616
obj-$(CONFIG_RISCV_PMU_LEGACY) += riscv_pmu_legacy.o
1717
obj-$(CONFIG_RISCV_PMU_SBI) += riscv_pmu_sbi.o
18+
obj-$(CONFIG_STARFIVE_STARLINK_PMU) += starfive_starlink_pmu.o
1819
obj-$(CONFIG_THUNDERX2_PMU) += thunderx2_pmu.o
1920
obj-$(CONFIG_XGENE_PMU) += xgene_pmu.o
2021
obj-$(CONFIG_ARM_SPE_PMU) += arm_spe_pmu.o

0 commit comments

Comments
 (0)