Marvell Odyssey PEM 性能监控单元 (PMU UNCORE)

PCI Express 接口单元 (PEM) 与相应的监控单元相关联。这包括用于跟踪通过 PCIe 链路传输的各种数据特征的性能计数器。

这些计数器跟踪入站和出站事务,包括用于发布/非发布/完成 TLP 的单独计数器。此外,还可以监控入站和出站内存读取请求及其延迟。地址转换服务 (ATS) 事件(例如 ATS 转换、ATS 页面请求、ATS 失效)及其相应的延迟也都会被跟踪。

有单独的 64 位计数器来测量入站和出站事务中发布/非发布/完成的 tlp。ATS 事件由不同的计数器测量。

PMU 驱动程序在 sysfs 下公开可用的事件和格式选项, /sys/bus/event_source/devices/mrvl_pcie_rc_pmu_<>/events/ /sys/bus/event_source/devices/mrvl_pcie_rc_pmu_<>/format/

例子

# perf list | grep mrvl_pcie_rc_pmu
mrvl_pcie_rc_pmu_<>/ats_inv/             [Kernel PMU event]
mrvl_pcie_rc_pmu_<>/ats_inv_latency/     [Kernel PMU event]
mrvl_pcie_rc_pmu_<>/ats_pri/             [Kernel PMU event]
mrvl_pcie_rc_pmu_<>/ats_pri_latency/     [Kernel PMU event]
mrvl_pcie_rc_pmu_<>/ats_trans/           [Kernel PMU event]
mrvl_pcie_rc_pmu_<>/ats_trans_latency/   [Kernel PMU event]
mrvl_pcie_rc_pmu_<>/ib_inflight/         [Kernel PMU event]
mrvl_pcie_rc_pmu_<>/ib_reads/            [Kernel PMU event]
mrvl_pcie_rc_pmu_<>/ib_req_no_ro_ebus/   [Kernel PMU event]
mrvl_pcie_rc_pmu_<>/ib_req_no_ro_ncb/    [Kernel PMU event]
mrvl_pcie_rc_pmu_<>/ib_tlp_cpl_partid/   [Kernel PMU event]
mrvl_pcie_rc_pmu_<>/ib_tlp_dwords_cpl_partid/ [Kernel PMU event]
mrvl_pcie_rc_pmu_<>/ib_tlp_dwords_npr/   [Kernel PMU event]
mrvl_pcie_rc_pmu_<>/ib_tlp_dwords_pr/    [Kernel PMU event]
mrvl_pcie_rc_pmu_<>/ib_tlp_npr/          [Kernel PMU event]
mrvl_pcie_rc_pmu_<>/ib_tlp_pr/           [Kernel PMU event]
mrvl_pcie_rc_pmu_<>/ob_inflight_partid/  [Kernel PMU event]
mrvl_pcie_rc_pmu_<>/ob_merges_cpl_partid/ [Kernel PMU event]
mrvl_pcie_rc_pmu_<>/ob_merges_npr_partid/ [Kernel PMU event]
mrvl_pcie_rc_pmu_<>/ob_merges_pr_partid/ [Kernel PMU event]
mrvl_pcie_rc_pmu_<>/ob_reads_partid/     [Kernel PMU event]
mrvl_pcie_rc_pmu_<>/ob_tlp_cpl_partid/   [Kernel PMU event]
mrvl_pcie_rc_pmu_<>/ob_tlp_dwords_cpl_partid/ [Kernel PMU event]
mrvl_pcie_rc_pmu_<>/ob_tlp_dwords_npr_partid/ [Kernel PMU event]
mrvl_pcie_rc_pmu_<>/ob_tlp_dwords_pr_partid/ [Kernel PMU event]
mrvl_pcie_rc_pmu_<>/ob_tlp_npr_partid/   [Kernel PMU event]
mrvl_pcie_rc_pmu_<>/ob_tlp_pr_partid/    [Kernel PMU event]


# perf stat -e ib_inflight,ib_reads,ib_req_no_ro_ebus,ib_req_no_ro_ncb <workload>