| ================================================================= | |
| Marvell Odyssey PEM Performance Monitoring Unit (PMU UNCORE) | |
| ================================================================= | |
| The PCI Express Interface Units(PEM) are associated with a corresponding | |
| monitoring unit. This includes performance counters to track various | |
| characteristics of the data that is transmitted over the PCIe link. | |
| The counters track inbound and outbound transactions which | |
| includes separate counters for posted/non-posted/completion TLPs. | |
| Also, inbound and outbound memory read requests along with their | |
| latencies can also be monitored. Address Translation Services(ATS)events | |
| such as ATS Translation, ATS Page Request, ATS Invalidation along with | |
| their corresponding latencies are also tracked. | |
| There are separate 64 bit counters to measure posted/non-posted/completion | |
| tlps in inbound and outbound transactions. ATS events are measured by | |
| different counters. | |
| The PMU driver exposes the available events and format options under sysfs, | |
| /sys/bus/event_source/devices/mrvl_pcie_rc_pmu_<>/events/ | |
| /sys/bus/event_source/devices/mrvl_pcie_rc_pmu_<>/format/ | |
| Examples:: | |
| # 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> |