晶晨 (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