1================================================================= 2Marvell Odyssey PEM Performance Monitoring Unit (PMU UNCORE) 3================================================================= 4 5The PCI Express Interface Units(PEM) are associated with a corresponding 6monitoring unit. This includes performance counters to track various 7characteristics of the data that is transmitted over the PCIe link. 8 9The counters track inbound and outbound transactions which 10includes separate counters for posted/non-posted/completion TLPs. 11Also, inbound and outbound memory read requests along with their 12latencies can also be monitored. Address Translation Services(ATS)events 13such as ATS Translation, ATS Page Request, ATS Invalidation along with 14their corresponding latencies are also tracked. 15 16There are separate 64 bit counters to measure posted/non-posted/completion 17tlps in inbound and outbound transactions. ATS events are measured by 18different counters. 19 20The PMU driver exposes the available events and format options under sysfs, 21/sys/bus/event_source/devices/mrvl_pcie_rc_pmu_<>/events/ 22/sys/bus/event_source/devices/mrvl_pcie_rc_pmu_<>/format/ 23 24Examples:: 25 26 # perf list | grep mrvl_pcie_rc_pmu 27 mrvl_pcie_rc_pmu_<>/ats_inv/ [Kernel PMU event] 28 mrvl_pcie_rc_pmu_<>/ats_inv_latency/ [Kernel PMU event] 29 mrvl_pcie_rc_pmu_<>/ats_pri/ [Kernel PMU event] 30 mrvl_pcie_rc_pmu_<>/ats_pri_latency/ [Kernel PMU event] 31 mrvl_pcie_rc_pmu_<>/ats_trans/ [Kernel PMU event] 32 mrvl_pcie_rc_pmu_<>/ats_trans_latency/ [Kernel PMU event] 33 mrvl_pcie_rc_pmu_<>/ib_inflight/ [Kernel PMU event] 34 mrvl_pcie_rc_pmu_<>/ib_reads/ [Kernel PMU event] 35 mrvl_pcie_rc_pmu_<>/ib_req_no_ro_ebus/ [Kernel PMU event] 36 mrvl_pcie_rc_pmu_<>/ib_req_no_ro_ncb/ [Kernel PMU event] 37 mrvl_pcie_rc_pmu_<>/ib_tlp_cpl_partid/ [Kernel PMU event] 38 mrvl_pcie_rc_pmu_<>/ib_tlp_dwords_cpl_partid/ [Kernel PMU event] 39 mrvl_pcie_rc_pmu_<>/ib_tlp_dwords_npr/ [Kernel PMU event] 40 mrvl_pcie_rc_pmu_<>/ib_tlp_dwords_pr/ [Kernel PMU event] 41 mrvl_pcie_rc_pmu_<>/ib_tlp_npr/ [Kernel PMU event] 42 mrvl_pcie_rc_pmu_<>/ib_tlp_pr/ [Kernel PMU event] 43 mrvl_pcie_rc_pmu_<>/ob_inflight_partid/ [Kernel PMU event] 44 mrvl_pcie_rc_pmu_<>/ob_merges_cpl_partid/ [Kernel PMU event] 45 mrvl_pcie_rc_pmu_<>/ob_merges_npr_partid/ [Kernel PMU event] 46 mrvl_pcie_rc_pmu_<>/ob_merges_pr_partid/ [Kernel PMU event] 47 mrvl_pcie_rc_pmu_<>/ob_reads_partid/ [Kernel PMU event] 48 mrvl_pcie_rc_pmu_<>/ob_tlp_cpl_partid/ [Kernel PMU event] 49 mrvl_pcie_rc_pmu_<>/ob_tlp_dwords_cpl_partid/ [Kernel PMU event] 50 mrvl_pcie_rc_pmu_<>/ob_tlp_dwords_npr_partid/ [Kernel PMU event] 51 mrvl_pcie_rc_pmu_<>/ob_tlp_dwords_pr_partid/ [Kernel PMU event] 52 mrvl_pcie_rc_pmu_<>/ob_tlp_npr_partid/ [Kernel PMU event] 53 mrvl_pcie_rc_pmu_<>/ob_tlp_pr_partid/ [Kernel PMU event] 54 55 56 # perf stat -e ib_inflight,ib_reads,ib_req_no_ro_ebus,ib_req_no_ro_ncb <workload> 57