HISI-PMU1
翻译自 https://gitee.com/openeuler/kernel/blob/openEuler-22.09/Documentation/admin-guide/perf/hisi-pmu.rst
适用于鲲鹏 920 系列片上系统芯片
海思 片上系统(SoC) 非核心(uncore) 性能监测单元(PMU)
海思片上系统 SoC芯片包括各种独立的系统设备PMU
例如L3缓存(L3C)、Hydra Home Agent(HHA)和DDRC。这些PMU是独立的,具有硬件逻辑收集统计数据和性能的信息。
HiSilicon SoC封装了多个CPU和IO芯片。每个CPU群集(CCL)由共享一个L3缓存的4个cpu内核组成;每个CPU die 被称为超级CPU集群(SCCL),由6个CCL组成。每个SCCL都有两个HHA(0-1)和四个DDRC(0-3)。
海思 片上系统(SoC) 非核心(uncore) 性能监测单元(PMU) 驱动程序
每个设备PMU都有单独的寄存器,用于事件计数(counting)、控制(control) 和 中断(interrupt),PMU驱动程序应注册执行PMU驱动,如L3C,HHA和DDRC等。可用事件和配置选项应请参见 sysfs:
/sys/devices/hisi_sccl{X}_<l3c{Y}/hha{Y}/ddrc{Y{>/,
或
/sys/bus/event_source/devices/hisi_sccl{X}_<l3c{Y}/hha{Y}/ddrc{Y{>。
“perf list”命令应列出sysfs中的可用事件。
每个L3C、HHA和DDRC都注册为单独的具有perf支持的PMU。PMU名称将在事件列表中显示为hisi_sccl
其中“sccl-id”是sccl的标识符,“index-id”是模块(module)的索引。
e.g. hisi_sccl3_l3c0/rd_hit_cpipe is READ_HIT_CPIPE event of L3C index #0 in SCCL ID #3.
e.g. hisi_sccl1_hha0/rx_operations is RX_OPERATIONS event of HHA index #0 in SCCL ID #1.
驱动程序还提供了一个“cpumask”sysfs属性,它显示CPU核心ID用于统计非核心PMU事件。
perf:的用法示例:
$# perf list
hisi_sccl3_l3c0/rd_hit_cpipe/ [kernel PMU event]
------------------------------------------
hisi_sccl3_l3c0/wr_hit_cpipe/ [kernel PMU event]
------------------------------------------
hisi_sccl1_l3c0/rd_hit_cpipe/ [kernel PMU event]
------------------------------------------
hisi_sccl1_l3c0/wr_hit_cpipe/ [kernel PMU event]
------------------------------------------
$# perf stat -a -e hisi_sccl3_l3c0/rd_hit_cpipe/ sleep 5
$# perf stat -a -e hisi_sccl3_l3c0/config=0x02/ sleep 5
当前驱动程序不支持采样(sampling)。因此不支持“perf record”。
也不支持附加(attach)到任务(task),因为事件都是非核心(uncore)的。
注意:请联系维护人员以获取SoC中的PMU设备支持的事件的完整列表,及其信息(如果需要)。