Marvell Odyssey LLC-TAD 性能监控单元 (PMU UNCORE)

每个 TAD 提供八个 64 位计数器用于监控缓存行为。驱动程序始终为所有 TAD 配置相同的计数器。用户最终会有效地在每个 TAD 中保留八个计数器中的一个,以查看所有 TAD。事件的发生情况会在工作负载运行结束时汇总并呈现给用户。驱动程序不提供用户对 TAD 进行分区的方法,以便不同的 TAD 可用于不同的应用程序。

性能事件反映了各种内部或接口活动。通过组合多个性能计数器的值,可以衡量缓存性能,例如:缓存未命中率、缓存分配、接口重试率、内部资源占用率等。

PMU 驱动程序在 sysfs 下公开可用的事件和格式选项

/sys/bus/event_source/devices/tad/events/
/sys/bus/event_source/devices/tad/format/

示例

$ perf list | grep tad
     tad/tad_alloc_any/                                 [Kernel PMU event]
     tad/tad_alloc_dtg/                                 [Kernel PMU event]
     tad/tad_alloc_ltg/                                 [Kernel PMU event]
     tad/tad_hit_any/                                   [Kernel PMU event]
     tad/tad_hit_dtg/                                   [Kernel PMU event]
     tad/tad_hit_ltg/                                   [Kernel PMU event]
     tad/tad_req_msh_in_exlmn/                          [Kernel PMU event]
     tad/tad_tag_rd/                                    [Kernel PMU event]
     tad/tad_tot_cycle/                                 [Kernel PMU event]

$ perf stat -e tad_alloc_dtg,tad_alloc_ltg,tad_alloc_any,tad_hit_dtg,tad_hit_ltg,tad_hit_any,tad_tag_rd <workload>