StarFive StarLink 性能监控单元 (PMU)¶
StarFive StarLink 性能监控单元 (PMU) 存在于 StarLink 片上一致性网络 (CNoC) 中,该网络将多个 CPU 集群与 L3 内存系统连接起来。
非核心 PMU 支持溢出中断,最多 16 个可编程的 64 位事件计数器和一个独立的 64 位周期计数器。PMU 只能通过内存映射 I/O 访问,并且对于连接到同一 PMU 的核心是通用的。
驱动程序在 sysfs “events” 目录下公开支持的 PMU 事件
/sys/bus/event_source/devices/starfive_starlink_pmu/events/
驱动程序在 sysfs “cpumask” 目录下公开用于处理 PMU 事件的 cpu
/sys/bus/event_source/devices/starfive_starlink_pmu/cpumask/
驱动程序在 sysfs “format” 目录下描述配置(事件 ID)的格式
/sys/bus/event_source/devices/starfive_starlink_pmu/format/
perf 用法示例
$ perf list
starfive_starlink_pmu/cycles/ [Kernel PMU event]
starfive_starlink_pmu/read_hit/ [Kernel PMU event]
starfive_starlink_pmu/read_miss/ [Kernel PMU event]
starfive_starlink_pmu/read_request/ [Kernel PMU event]
starfive_starlink_pmu/release_request/ [Kernel PMU event]
starfive_starlink_pmu/write_hit/ [Kernel PMU event]
starfive_starlink_pmu/write_miss/ [Kernel PMU event]
starfive_starlink_pmu/write_request/ [Kernel PMU event]
starfive_starlink_pmu/writeback/ [Kernel PMU event]
$ perf stat -a -e /starfive_starlink_pmu/cycles/ sleep 1
不支持采样。因此,不支持“perf record”。不支持附加到任务,只支持系统范围的计数。