Qualcomm Technologies 二级缓存性能监测单元 (PMU)

该驱动支持在 Qualcomm Technologies Centriq SoC 中发现的 L2 缓存集群。存在多个物理 L2 缓存集群,每个集群都有自己的 PMU。每个集群关联一个或多个 CPU。

公开了一个逻辑 L2 PMU,它聚合了来自物理 PMU 的结果。

驱动在 sysfs 中提供了其可用事件和配置选项的描述,参见 /sys/bus/event_source/devices/l2cache_0。

“format”目录描述了事件的格式。

事件可以被视为一个二维数组。每列代表一组事件。共有 8 组。每组中一次只能使用一个条目。如果指定了同一组中的多个事件,则冲突的事件不能同时计数。

事件指定为 0xCCG,其中 CC 是表示代码(数组行)的 2 个十六进制数字,G 指定组(列)0-7。

此外,还有一个由值 0xFE 指定的循环计数器事件,它不在此方案之内。

驱动提供了一个“cpumask”sysfs 属性,其中包含一个掩码,该掩码由每个集群的一个 CPU 组成,这些 CPU 将用于处理该集群上的所有 PMU 事件。

perf 的使用示例

perf stat -e l2cache_0/config=0x001/,l2cache_0/config=0x042/ -a sleep 1

perf stat -e l2cache_0/config=0xfe/ -C 2 sleep 1

驱动不支持采样,因此“perf record”将无法工作。不支持每任务 perf 会话。