1 ============================================== 2 HiSilicon PCIe Performance Monitoring Unit (PM 3 ============================================== 4 5 On Hip09, HiSilicon PCIe Performance Monitorin 6 bandwidth, latency, bus utilization and buffer 7 8 Each PCIe Core has a PMU to monitor multi Root 9 all Endpoints downstream these Root Ports. 10 11 12 HiSilicon PCIe PMU driver 13 ========================= 14 15 The PCIe PMU driver registers a perf PMU with 16 Core id.:: 17 18 /sys/bus/event_source/hisi_pcie<sicl>_core<c 19 20 PMU driver provides description of available e 21 see /sys/bus/event_source/devices/hisi_pcie<si 22 23 The "format" directory describes all formats o 24 (filter options) fields of the perf_event_attr 25 describes all documented events shown in perf 26 27 The "identifier" sysfs file allows users to id 28 PMU hardware device. 29 30 The "bus" sysfs file allows users to get the b 31 monitored by PMU. 32 33 Example usage of perf:: 34 35 $# perf list 36 hisi_pcie0_core0/rx_mwr_latency/ [kernel PMU 37 hisi_pcie0_core0/rx_mwr_cnt/ [kernel PMU eve 38 ------------------------------------------ 39 40 $# perf stat -e hisi_pcie0_core0/rx_mwr_late 41 $# perf stat -e hisi_pcie0_core0/rx_mwr_cnt, 42 43 The related events usually used to calculate t 44 They need to start and end counting at the sam 45 are best used in the same event group to get t 46 ways to know if they are related events: 47 48 a) By event name, such as the latency events " 49 bandwidth events "xxx_flux, xxx_time". 50 b) By event type, such as "event=0xXXXX, event 51 52 Example usage of perf group:: 53 54 $# perf stat -e "{hisi_pcie0_core0/rx_mwr_la 55 56 The current driver does not support sampling. 57 Also attach to a task is unsupported for PCIe 58 59 Filter options 60 -------------- 61 62 1. Target filter 63 64 PMU could only monitor the performance of t 65 Ports or downstream target Endpoint. PCIe P 66 "bdf" interfaces for users. 67 Please notice that, one of these two interf 68 interfaces aren't supported at the same tim 69 "port" filter is valid. 70 If "port" filter not being set or is set ex 71 "bdf" filter will be in effect, because "bd 72 73 - port 74 75 "port" filter can be used in all PCIe PMU 76 selected by configuring the 16-bits-bitma 77 selected for AP-layer-events, and only on 78 TL/DL-layer-events. 79 80 For example, if target Root Port is 0000: 81 bitmap should be set, port=0x1; if target 82 lanes), bit8 is set, port=0x100; if these 83 monitored, port=0x101. 84 85 Example usage of perf:: 86 87 $# perf stat -e hisi_pcie0_core0/rx_mwr 88 89 - bdf 90 91 "bdf" filter can only be used in bandwidt 92 selected by configuring BDF to "bdf". Cou 93 message requested by target Endpoint. 94 95 For example, "bdf=0x3900" means BDF of ta 96 97 Example usage of perf:: 98 99 $# perf stat -e hisi_pcie0_core0/rx_mrd 100 101 2. Trigger filter 102 103 Event statistics start when the first time 104 than trigger condition. You can set the tri 105 "trig_len", and set the trigger mode by wri 106 only be used in bandwidth events. 107 108 For example, "trig_len=4" means trigger con 109 means statistics start when TLP length > tr 110 means start when TLP length < condition. 111 112 Example usage of perf:: 113 114 $# perf stat -e hisi_pcie0_core0/rx_mrd_f 115 116 3. Threshold filter 117 118 Counter counts when TLP length within the s 119 threshold by writing "thr_len", and set the 120 "thr_mode". This filter can only be used in 121 122 For example, "thr_len=4" means threshold is 123 counter counts when TLP length >= threshold 124 when TLP length < threshold. 125 126 Example usage of perf:: 127 128 $# perf stat -e hisi_pcie0_core0/rx_mrd_f 129 130 4. TLP Length filter 131 132 When counting bandwidth, the data can be co 133 packets. You can specify it through "len_mo 134 135 - 2'b00: Reserved (Do not use this since th 136 - 2'b01: Bandwidth of TLP payloads 137 - 2'b10: Bandwidth of TLP headers 138 - 2'b11: Bandwidth of both TLP payloads and 139 140 For example, "len_mode=2" means only counti 141 and "len_mode=3" means the final bandwidth 142 headers and payloads. Default value if not 143 144 Example usage of perf:: 145 146 $# perf stat -e hisi_pcie0_core0/rx_mrd_f
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.