晶晨 (Amlogic) SoC DDR 带宽性能监控单元 (PMU)¶
晶晨 (Amlogic) Meson G12 SoC 在 DRAM 控制器内部包含一个带宽监视器。该监视器包含 4 个通道。每个通道都可以计算访问 DRAM 的请求。该通道最多可以同时计算 3 个 AXI 端口。它可以帮助显示性能瓶颈是否在 DDR 带宽上。
目前,此驱动程序支持以下 5 个 perf 事件
meson_ddr_bw/total_rw_bytes/
meson_ddr_bw/chan_1_rw_bytes/
meson_ddr_bw/chan_2_rw_bytes/
meson_ddr_bw/chan_3_rw_bytes/
meson_ddr_bw/chan_4_rw_bytes/
meson_ddr_bw/chan_{1,2,3,4}_rw_bytes/ 事件是特定于通道的事件。每个通道都支持过滤,这可以让通道监视 SoC 中的各个 IP 模块。
以下是 DDR 访问请求事件过滤器关键字
arm - 来自 CPU
vpu_read1 - 来自 OSD + VPP 读取
gpu - 来自 3D GPU
pcie - 来自 PCIe 控制器
hdcp - 来自 HDCP 控制器
hevc_front - 来自 HEVC 编解码器前端
usb3_0 - 来自 USB3.0 控制器
hevc_back - 来自 HEVC 编解码器后端
h265enc - 来自 HEVC 编码器
vpu_read2 - 来自 DI 读取
vpu_write1 - 来自 VDIN 写入
vpu_write2 - 来自 di 写入
vdec - 来自旧编解码器视频解码器
hcodec - 来自 H264 编码器
ge2d - 来自 ge2d
spicc1 - 来自 SPI 控制器 1
usb0 - 来自 USB2.0 控制器 0
dma - 来自系统 DMA 控制器 1
arb0 - 来自 arb0
sd_emmc_b - 来自 SD eMMC b 控制器
usb1 - 来自 USB2.0 控制器 1
audio - 来自音频模块
sd_emmc_c - 来自 SD eMMC c 控制器
spicc2 - 来自 SPI 控制器 2
ethernet - 来自以太网控制器
示例
显示每秒的总 DDR 带宽
perf stat -a -e meson_ddr_bw/total_rw_bytes/ -I 1000 sleep 10分别显示来自 CPU 和 GPU 的各个 DDR 带宽,以及它们的总和
perf stat -a -e meson_ddr_bw/chan_1_rw_bytes,arm=1/ -I 1000 sleep 10 perf stat -a -e meson_ddr_bw/chan_2_rw_bytes,gpu=1/ -I 1000 sleep 10 perf stat -a -e meson_ddr_bw/chan_3_rw_bytes,arm=1,gpu=1/ -I 1000 sleep 10