[PATCH 00/18] Add perf support to the rockchip-dfi driver
Sascha Hauer
s.hauer at pengutronix.de
Fri Feb 3 04:49:54 PST 2023
This series adds perf support to the Rockchip DFI driver.
The DFI is a unit for measuring DRAM performance. Its driver is
currently located under drivers/devfreq/event/ as it serves as an event
driver for DRAM frequency scaling. With this series it can also be used
as a perf driver for measuring DRAM throughput. Usage looks like:
perf stat -a -e rockchip_ddr/cycles/,\
rockchip_ddr/read-bytes/,\
rockchip_ddr/write-bytes/,\
rockchip_ddr/bytes/ sleep 1
Performance counter stats for 'system wide':
1582524826 rockchip_ddr/cycles/
1802.25 MB rockchip_ddr/read-bytes/
1793.72 MB rockchip_ddr/write-bytes/
3595.90 MB rockchip_ddr/bytes/
1.014369709 seconds time elapsed
My target SoC is RK3568 which is not yet supported by the driver, so the
series starts with some cleanups and preparations, then RK3568 support
is added and finally perf support.
The driver is tested on both a RK3568 board and a RK3399 board, the
latter with dual channel memory. The measured values look sane,
read-bytes plus write-bytes is equal to totally transferred bytes, the
values reported by perf are slightly higher than the values my copy
from/to RAM test tool reports, as expected.
Sascha
Sascha Hauer (18):
PM / devfreq: rockchip-dfi: Embed desc into private data struct
PM / devfreq: rockchip-dfi: use consistent name for private data
struct
PM / devfreq: rockchip-dfi: Make pmu regmap mandatory
PM / devfreq: rockchip-dfi: Add SoC specific init function
PM / devfreq: rockchip-dfi: dfi store raw values in counter struct
PM / devfreq: rockchip-dfi: Use free running counter
PM / devfreq: rockchip-dfi: introduce channel mask
PM / devfreq: rk3399_dmc,dfi: generalize DDRTYPE defines
PM / devfreq: rockchip-dfi: Clean up DDR type register defines
PM / devfreq: rockchip-dfi: Add RK3568 support
PM / devfreq: rockchip-dfi: Handle LPDDR2 correctly
PM / devfreq: rockchip-dfi: Handle LPDDR4X
PM / devfreq: rockchip-dfi: Pass private data struct to internal
functions
PM / devfreq: rockchip-dfi: Prepare for multiple users
PM / devfreq: rockchip-dfi: Add perf support
arm64: dts: rockchip: rk3399: Enable DFI
arm64: dts: rockchip: rk356x: Add DFI
dt-bindings: devfreq: event: convert Rockchip DFI binding to yaml
.../bindings/devfreq/event/rockchip-dfi.txt | 18 -
.../bindings/devfreq/event/rockchip-dfi.yaml | 38 +
arch/arm64/boot/dts/rockchip/rk3399.dtsi | 1 -
arch/arm64/boot/dts/rockchip/rk356x.dtsi | 6 +
drivers/devfreq/event/rockchip-dfi.c | 659 +++++++++++++++---
drivers/devfreq/rk3399_dmc.c | 10 +-
include/soc/rockchip/rk3399_grf.h | 9 +-
include/soc/rockchip/rk3568_grf.h | 13 +
include/soc/rockchip/rockchip_grf.h | 16 +
9 files changed, 638 insertions(+), 132 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/devfreq/event/rockchip-dfi.txt
create mode 100644 Documentation/devicetree/bindings/devfreq/event/rockchip-dfi.yaml
create mode 100644 include/soc/rockchip/rk3568_grf.h
create mode 100644 include/soc/rockchip/rockchip_grf.h
--
2.30.2
More information about the Linux-rockchip
mailing list