€•„cŒsphinx.addnodes”Œdocument”“”)”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)”}”(hhh]”(hŒ pending_xref”“”)”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…””}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ2/translations/zh_CN/admin-guide/perf/hisi-pcie-pmu”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)”}”(hhh]”hŒChinese (Traditional)”…””}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ2/translations/zh_TW/admin-guide/perf/hisi-pcie-pmu”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒItalian”…””}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ2/translations/it_IT/admin-guide/perf/hisi-pcie-pmu”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒJapanese”…””}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ2/translations/ja_JP/admin-guide/perf/hisi-pcie-pmu”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒKorean”…””}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ2/translations/ko_KR/admin-guide/perf/hisi-pcie-pmu”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒPortuguese (Brazilian)”…””}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ2/translations/pt_BR/admin-guide/perf/hisi-pcie-pmu”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒSpanish”…””}”hh–sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ2/translations/sp_SP/admin-guide/perf/hisi-pcie-pmu”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒsection”“”)”}”(hhh]”(hŒtitle”“”)”}”(hŒ0HiSilicon PCIe Performance Monitoring Unit (PMU)”h]”hŒ0HiSilicon PCIe Performance Monitoring Unit (PMU)”…””}”(hh¼h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhh·h²hh³ŒL/var/lib/git/docbuild/linux/Documentation/admin-guide/perf/hisi-pcie-pmu.rst”h´KubhŒ paragraph”“”)”}”(hŒOn Hip09, HiSilicon PCIe Performance Monitoring Unit (PMU) could monitor bandwidth, latency, bus utilization and buffer occupancy data of PCIe.”h]”hŒOn Hip09, HiSilicon PCIe Performance Monitoring Unit (PMU) could monitor bandwidth, latency, bus utilization and buffer occupancy data of PCIe.”…””}”(hhÍh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khh·h²hubhÌ)”}”(hŒuEach PCIe Core has a PMU to monitor multi Root Ports of this PCIe Core and all Endpoints downstream these Root Ports.”h]”hŒuEach PCIe Core has a PMU to monitor multi Root Ports of this PCIe Core and all Endpoints downstream these Root Ports.”…””}”(hhÛh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khh·h²hubh¶)”}”(hhh]”(h»)”}”(hŒHiSilicon PCIe PMU driver”h]”hŒHiSilicon PCIe PMU driver”…””}”(hhìh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhhéh²hh³hÊh´K ubhÌ)”}”(hŒYThe PCIe PMU driver registers a perf PMU with the name of its sicl-id and PCIe Core id.::”h]”hŒXThe PCIe PMU driver registers a perf PMU with the name of its sicl-id and PCIe Core id.:”…””}”(hhúh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khhéh²hubhŒ literal_block”“”)”}”(hŒ0/sys/bus/event_source/hisi_pcie_core”h]”hŒ0/sys/bus/event_source/hisi_pcie_core”…””}”hj sbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1jh³hÊh´Khhéh²hubhÌ)”}”(hŒŽPMU driver provides description of available events and filter options in sysfs, see /sys/bus/event_source/devices/hisi_pcie_core.”h]”hŒŽPMU driver provides description of available events and filter options in sysfs, see /sys/bus/event_source/devices/hisi_pcie_core.”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khhéh²hubhÌ)”}”(hŒÔThe "format" directory describes all formats of the config (events) and config1 (filter options) fields of the perf_event_attr structure. The "events" directory describes all documented events shown in perf list.”h]”hŒÜThe “format†directory describes all formats of the config (events) and config1 (filter options) fields of the perf_event_attr structure. The “events†directory describes all documented events shown in perf list.”…””}”(hj(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khhéh²hubhÌ)”}”(hŒ\The "identifier" sysfs file allows users to identify the version of the PMU hardware device.”h]”hŒ`The “identifier†sysfs file allows users to identify the version of the PMU hardware device.”…””}”(hj6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khhéh²hubhÌ)”}”(hŒØThe "bus" sysfs file allows users to get the bus number of Root Ports monitored by PMU. Furthermore users can get the Root Ports range in [bdf_min, bdf_max] from "bdf_min" and "bdf_max" sysfs attributes respectively.”h]”hŒäThe “bus†sysfs file allows users to get the bus number of Root Ports monitored by PMU. Furthermore users can get the Root Ports range in [bdf_min, bdf_max] from “bdf_min†and “bdf_max†sysfs attributes respectively.”…””}”(hjDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khhéh²hubhÌ)”}”(hŒExample usage of perf::”h]”hŒExample usage of perf:”…””}”(hjRh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K#hhéh²hubj )”}”(hX$# perf list hisi_pcie0_core0/rx_mwr_latency/ [kernel PMU event] hisi_pcie0_core0/rx_mwr_cnt/ [kernel PMU event] ------------------------------------------ $# perf stat -e hisi_pcie0_core0/rx_mwr_latency,port=0xffff/ $# perf stat -e hisi_pcie0_core0/rx_mwr_cnt,port=0xffff/”h]”hX$# perf list hisi_pcie0_core0/rx_mwr_latency/ [kernel PMU event] hisi_pcie0_core0/rx_mwr_cnt/ [kernel PMU event] ------------------------------------------ $# perf stat -e hisi_pcie0_core0/rx_mwr_latency,port=0xffff/ $# perf stat -e hisi_pcie0_core0/rx_mwr_cnt,port=0xffff/”…””}”hj`sbah}”(h]”h ]”h"]”h$]”h&]”jjuh1jh³hÊh´K%hhéh²hubhÌ)”}”(hXThe related events usually used to calculate the bandwidth, latency or others. They need to start and end counting at the same time, therefore related events are best used in the same event group to get the expected value. There are two ways to know if they are related events:”h]”hXThe related events usually used to calculate the bandwidth, latency or others. They need to start and end counting at the same time, therefore related events are best used in the same event group to get the expected value. There are two ways to know if they are related events:”…””}”(hjnh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K-hhéh²hubhŒenumerated_list”“”)”}”(hhh]”(hŒ list_item”“”)”}”(hŒjBy event name, such as the latency events "xxx_latency, xxx_cnt" or bandwidth events "xxx_flux, xxx_time".”h]”hÌ)”}”(hŒjBy event name, such as the latency events "xxx_latency, xxx_cnt" or bandwidth events "xxx_flux, xxx_time".”h]”hŒrBy event name, such as the latency events “xxx_latency, xxx_cnt†or bandwidth events “xxx_flux, xxx_timeâ€.”…””}”(hj‡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K2hjƒubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj~h²hh³hÊh´Nubj‚)”}”(hŒ6By event type, such as "event=0xXXXX, event=0x1XXXX". ”h]”hÌ)”}”(hŒ5By event type, such as "event=0xXXXX, event=0x1XXXX".”h]”hŒ9By event type, such as “event=0xXXXX, event=0x1XXXXâ€.”…””}”(hjŸh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K4hj›ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj~h²hh³hÊh´Nubeh}”(h]”h ]”h"]”h$]”h&]”Œenumtype”Œ loweralpha”Œprefix”hŒsuffix”Œ)”uh1j|hhéh²hh³hÊh´K2ubhÌ)”}”(hŒExample usage of perf group::”h]”hŒExample usage of perf group:”…””}”(hj¾h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K6hhéh²hubj )”}”(hŒi$# perf stat -e "{hisi_pcie0_core0/rx_mwr_latency,port=0xffff/,hisi_pcie0_core0/rx_mwr_cnt,port=0xffff/}"”h]”hŒi$# perf stat -e "{hisi_pcie0_core0/rx_mwr_latency,port=0xffff/,hisi_pcie0_core0/rx_mwr_cnt,port=0xffff/}"”…””}”hjÌsbah}”(h]”h ]”h"]”h$]”h&]”jjuh1jh³hÊh´K8hhéh²hubhÌ)”}”(hŒThe current driver does not support sampling. So "perf record" is unsupported. Also attach to a task is unsupported for PCIe PMU.”h]”hŒ…The current driver does not support sampling. So “perf record†is unsupported. Also attach to a task is unsupported for PCIe PMU.”…””}”(hjÚh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K:hhéh²hubh¶)”}”(hhh]”(h»)”}”(hŒFilter options”h]”hŒFilter options”…””}”(hjëh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjèh²hh³hÊh´K>ubj})”}”(hhh]”(j‚)”}”(hXµTarget filter PMU could only monitor the performance of traffic downstream target Root Ports or downstream target Endpoint. PCIe PMU driver support "port" and "bdf" interfaces for users. Please notice that, one of these two interfaces must be set, and these two interfaces aren't supported at the same time. If they are both set, only "port" filter is valid. If "port" filter not being set or is set explicitly to zero (default), the "bdf" filter will be in effect, because "bdf=0" meaning 0000:000:00.0. - port "port" filter can be used in all PCIe PMU events, target Root Port can be selected by configuring the 16-bits-bitmap "port". Multi ports can be selected for AP-layer-events, and only one port can be selected for TL/DL-layer-events. For example, if target Root Port is 0000:00:00.0 (x8 lanes), bit0 of bitmap should be set, port=0x1; if target Root Port is 0000:00:04.0 (x4 lanes), bit8 is set, port=0x100; if these two Root Ports are both monitored, port=0x101. Example usage of perf:: $# perf stat -e hisi_pcie0_core0/rx_mwr_latency,port=0x1/ sleep 5 - bdf "bdf" filter can only be used in bandwidth events, target Endpoint is selected by configuring BDF to "bdf". Counter only counts the bandwidth of message requested by target Endpoint. For example, "bdf=0x3900" means BDF of target Endpoint is 0000:39:00.0. Example usage of perf:: $# perf stat -e hisi_pcie0_core0/rx_mrd_flux,bdf=0x3900/ sleep 5 ”h]”(hÌ)”}”(hŒ Target filter”h]”hŒ Target filter”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K@hjüubhÌ)”}”(hXêPMU could only monitor the performance of traffic downstream target Root Ports or downstream target Endpoint. PCIe PMU driver support "port" and "bdf" interfaces for users. Please notice that, one of these two interfaces must be set, and these two interfaces aren't supported at the same time. If they are both set, only "port" filter is valid. If "port" filter not being set or is set explicitly to zero (default), the "bdf" filter will be in effect, because "bdf=0" meaning 0000:000:00.0.”h]”hXPMU could only monitor the performance of traffic downstream target Root Ports or downstream target Endpoint. PCIe PMU driver support “port†and “bdf†interfaces for users. Please notice that, one of these two interfaces must be set, and these two interfaces aren’t supported at the same time. If they are both set, only “port†filter is valid. If “port†filter not being set or is set explicitly to zero (default), the “bdf†filter will be in effect, because “bdf=0†meaning 0000:000:00.0.”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KBhjüubhŒ bullet_list”“”)”}”(hhh]”(j‚)”}”(hX3port "port" filter can be used in all PCIe PMU events, target Root Port can be selected by configuring the 16-bits-bitmap "port". Multi ports can be selected for AP-layer-events, and only one port can be selected for TL/DL-layer-events. For example, if target Root Port is 0000:00:00.0 (x8 lanes), bit0 of bitmap should be set, port=0x1; if target Root Port is 0000:00:04.0 (x4 lanes), bit8 is set, port=0x100; if these two Root Ports are both monitored, port=0x101. Example usage of perf:: $# perf stat -e hisi_pcie0_core0/rx_mwr_latency,port=0x1/ sleep 5 ”h]”(hÌ)”}”(hŒport”h]”hŒport”…””}”(hj%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KKhj!ubhÌ)”}”(hŒç"port" filter can be used in all PCIe PMU events, target Root Port can be selected by configuring the 16-bits-bitmap "port". Multi ports can be selected for AP-layer-events, and only one port can be selected for TL/DL-layer-events.”h]”hŒï“port†filter can be used in all PCIe PMU events, target Root Port can be selected by configuring the 16-bits-bitmap “portâ€. Multi ports can be selected for AP-layer-events, and only one port can be selected for TL/DL-layer-events.”…””}”(hj3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KMhj!ubhÌ)”}”(hŒåFor example, if target Root Port is 0000:00:00.0 (x8 lanes), bit0 of bitmap should be set, port=0x1; if target Root Port is 0000:00:04.0 (x4 lanes), bit8 is set, port=0x100; if these two Root Ports are both monitored, port=0x101.”h]”hŒåFor example, if target Root Port is 0000:00:00.0 (x8 lanes), bit0 of bitmap should be set, port=0x1; if target Root Port is 0000:00:04.0 (x4 lanes), bit8 is set, port=0x100; if these two Root Ports are both monitored, port=0x101.”…””}”(hjAh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KRhj!ubhÌ)”}”(hŒExample usage of perf::”h]”hŒExample usage of perf:”…””}”(hjOh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KWhj!ubj )”}”(hŒA$# perf stat -e hisi_pcie0_core0/rx_mwr_latency,port=0x1/ sleep 5”h]”hŒA$# perf stat -e hisi_pcie0_core0/rx_mwr_latency,port=0x1/ sleep 5”…””}”hj]sbah}”(h]”h ]”h"]”h$]”h&]”jjuh1jh³hÊh´KYhj!ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjubj‚)”}”(hXbbdf "bdf" filter can only be used in bandwidth events, target Endpoint is selected by configuring BDF to "bdf". Counter only counts the bandwidth of message requested by target Endpoint. For example, "bdf=0x3900" means BDF of target Endpoint is 0000:39:00.0. Example usage of perf:: $# perf stat -e hisi_pcie0_core0/rx_mrd_flux,bdf=0x3900/ sleep 5 ”h]”(hÌ)”}”(hŒbdf”h]”hŒbdf”…””}”(hjuh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K[hjqubhÌ)”}”(hŒ¶"bdf" filter can only be used in bandwidth events, target Endpoint is selected by configuring BDF to "bdf". Counter only counts the bandwidth of message requested by target Endpoint.”h]”hŒ¾â€œbdf†filter can only be used in bandwidth events, target Endpoint is selected by configuring BDF to “bdfâ€. Counter only counts the bandwidth of message requested by target Endpoint.”…””}”(hjƒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K]hjqubhÌ)”}”(hŒGFor example, "bdf=0x3900" means BDF of target Endpoint is 0000:39:00.0.”h]”hŒKFor example, “bdf=0x3900†means BDF of target Endpoint is 0000:39:00.0.”…””}”(hj‘h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KahjqubhÌ)”}”(hŒExample usage of perf::”h]”hŒExample usage of perf:”…””}”(hjŸh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Kchjqubj )”}”(hŒ@$# perf stat -e hisi_pcie0_core0/rx_mrd_flux,bdf=0x3900/ sleep 5”h]”hŒ@$# perf stat -e hisi_pcie0_core0/rx_mrd_flux,bdf=0x3900/ sleep 5”…””}”hj­sbah}”(h]”h ]”h"]”h$]”h&]”jjuh1jh³hÊh´Kehjqubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjubeh}”(h]”h ]”h"]”h$]”h&]”Œbullet”Œ-”uh1jh³hÊh´KKhjüubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjùh²hh³Nh´Nubj‚)”}”(hXCTrigger filter Event statistics start when the first time TLP length is greater/smaller than trigger condition. You can set the trigger condition by writing "trig_len", and set the trigger mode by writing "trig_mode". This filter can only be used in bandwidth events. For example, "trig_len=4" means trigger condition is 2^4 DW, "trig_mode=0" means statistics start when TLP length > trigger condition, "trig_mode=1" means start when TLP length < condition. Example usage of perf:: $# perf stat -e hisi_pcie0_core0/rx_mrd_flux,port=0xffff,trig_len=0x4,trig_mode=1/ sleep 5 ”h]”(hÌ)”}”(hŒTrigger filter”h]”hŒTrigger filter”…””}”(hjÓh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KghjÏubhÌ)”}”(hŒüEvent statistics start when the first time TLP length is greater/smaller than trigger condition. You can set the trigger condition by writing "trig_len", and set the trigger mode by writing "trig_mode". This filter can only be used in bandwidth events.”h]”hXEvent statistics start when the first time TLP length is greater/smaller than trigger condition. You can set the trigger condition by writing “trig_lenâ€, and set the trigger mode by writing “trig_modeâ€. This filter can only be used in bandwidth events.”…””}”(hjáh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KihjÏubhÌ)”}”(hŒ½For example, "trig_len=4" means trigger condition is 2^4 DW, "trig_mode=0" means statistics start when TLP length > trigger condition, "trig_mode=1" means start when TLP length < condition.”h]”hŒÉFor example, “trig_len=4†means trigger condition is 2^4 DW, “trig_mode=0†means statistics start when TLP length > trigger condition, “trig_mode=1†means start when TLP length < condition.”…””}”(hjïh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KnhjÏubhÌ)”}”(hŒExample usage of perf::”h]”hŒExample usage of perf:”…””}”(hjýh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KrhjÏubj )”}”(hŒZ$# perf stat -e hisi_pcie0_core0/rx_mrd_flux,port=0xffff,trig_len=0x4,trig_mode=1/ sleep 5”h]”hŒZ$# perf stat -e hisi_pcie0_core0/rx_mrd_flux,port=0xffff,trig_len=0x4,trig_mode=1/ sleep 5”…””}”hj sbah}”(h]”h ]”h"]”h$]”h&]”jjuh1jh³hÊh´KthjÏubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjùh²hh³hÊh´Nubj‚)”}”(hXThreshold filter Counter counts when TLP length within the specified range. You can set the threshold by writing "thr_len", and set the threshold mode by writing "thr_mode". This filter can only be used in bandwidth events. For example, "thr_len=4" means threshold is 2^4 DW, "thr_mode=0" means counter counts when TLP length >= threshold, and "thr_mode=1" means counts when TLP length < threshold. Example usage of perf:: $# perf stat -e hisi_pcie0_core0/rx_mrd_flux,port=0xffff,thr_len=0x4,thr_mode=1/ sleep 5 ”h]”(hÌ)”}”(hŒThreshold filter”h]”hŒThreshold filter”…””}”(hj#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KvhjubhÌ)”}”(hŒÎCounter counts when TLP length within the specified range. You can set the threshold by writing "thr_len", and set the threshold mode by writing "thr_mode". This filter can only be used in bandwidth events.”h]”hŒÖCounter counts when TLP length within the specified range. You can set the threshold by writing “thr_lenâ€, and set the threshold mode by writing “thr_modeâ€. This filter can only be used in bandwidth events.”…””}”(hj1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KxhjubhÌ)”}”(hŒ®For example, "thr_len=4" means threshold is 2^4 DW, "thr_mode=0" means counter counts when TLP length >= threshold, and "thr_mode=1" means counts when TLP length < threshold.”h]”hŒºFor example, “thr_len=4†means threshold is 2^4 DW, “thr_mode=0†means counter counts when TLP length >= threshold, and “thr_mode=1†means counts when TLP length < threshold.”…””}”(hj?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K|hjubhÌ)”}”(hŒExample usage of perf::”h]”hŒExample usage of perf:”…””}”(hjMh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K€hjubj )”}”(hŒX$# perf stat -e hisi_pcie0_core0/rx_mrd_flux,port=0xffff,thr_len=0x4,thr_mode=1/ sleep 5”h]”hŒX$# perf stat -e hisi_pcie0_core0/rx_mrd_flux,port=0xffff,thr_len=0x4,thr_mode=1/ sleep 5”…””}”hj[sbah}”(h]”h ]”h"]”h$]”h&]”jjuh1jh³hÊh´K‚hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjùh²hh³hÊh´Nubj‚)”}”(hX‰TLP Length filter When counting bandwidth, the data can be composed of certain parts of TLP packets. You can specify it through "len_mode": - 2'b00: Reserved (Do not use this since the behaviour is undefined) - 2'b01: Bandwidth of TLP payloads - 2'b10: Bandwidth of TLP headers - 2'b11: Bandwidth of both TLP payloads and headers For example, "len_mode=2" means only counting the bandwidth of TLP headers and "len_mode=3" means the final bandwidth data is composed of both TLP headers and payloads. Default value if not specified is 2'b11. Example usage of perf:: $# perf stat -e hisi_pcie0_core0/rx_mrd_flux,port=0xffff,len_mode=0x1/ sleep 5”h]”(hÌ)”}”(hŒTLP Length filter”h]”hŒTLP Length filter”…””}”(hjsh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K„hjoubhÌ)”}”(hŒyWhen counting bandwidth, the data can be composed of certain parts of TLP packets. You can specify it through "len_mode":”h]”hŒ}When counting bandwidth, the data can be composed of certain parts of TLP packets. You can specify it through “len_modeâ€:”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K†hjoubj)”}”(hhh]”(j‚)”}”(hŒB2'b00: Reserved (Do not use this since the behaviour is undefined)”h]”hÌ)”}”(hj”h]”hŒD2’b00: Reserved (Do not use this since the behaviour is undefined)”…””}”(hj–h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K‰hj’ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubj‚)”}”(hŒ 2'b01: Bandwidth of TLP payloads”h]”hÌ)”}”(hj«h]”hŒ"2’b01: Bandwidth of TLP payloads”…””}”(hj­h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KŠhj©ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubj‚)”}”(hŒ2'b10: Bandwidth of TLP headers”h]”hÌ)”}”(hjÂh]”hŒ!2’b10: Bandwidth of TLP headers”…””}”(hjÄh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K‹hjÀubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubj‚)”}”(hŒ22'b11: Bandwidth of both TLP payloads and headers ”h]”hÌ)”}”(hŒ12'b11: Bandwidth of both TLP payloads and headers”h]”hŒ32’b11: Bandwidth of both TLP payloads and headers”…””}”(hjÛh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KŒhj×ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubeh}”(h]”h ]”h"]”h$]”h&]”jÇjÈuh1jh³hÊh´K‰hjoubhÌ)”}”(hŒÑFor example, "len_mode=2" means only counting the bandwidth of TLP headers and "len_mode=3" means the final bandwidth data is composed of both TLP headers and payloads. Default value if not specified is 2'b11.”h]”hŒÛFor example, “len_mode=2†means only counting the bandwidth of TLP headers and “len_mode=3†means the final bandwidth data is composed of both TLP headers and payloads. Default value if not specified is 2’b11.”…””}”(hjõh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KŽhjoubhÌ)”}”(hŒExample usage of perf::”h]”hŒExample usage of perf:”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K’hjoubj )”}”(hŒN$# perf stat -e hisi_pcie0_core0/rx_mrd_flux,port=0xffff,len_mode=0x1/ sleep 5”h]”hŒN$# perf stat -e hisi_pcie0_core0/rx_mrd_flux,port=0xffff,len_mode=0x1/ sleep 5”…””}”hjsbah}”(h]”h ]”h"]”h$]”h&]”jjuh1jh³hÊh´K”hjoubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjùh²hh³hÊh´Nubeh}”(h]”h ]”h"]”h$]”h&]”j¹Œarabic”j»hj¼Œ.”uh1j|hjèh²hh³hÊh´K@ubeh}”(h]”Œfilter-options”ah ]”h"]”Œfilter options”ah$]”h&]”uh1hµhhéh²hh³hÊh´K>ubeh}”(h]”Œhisilicon-pcie-pmu-driver”ah ]”h"]”Œhisilicon pcie pmu driver”ah$]”h&]”uh1hµhh·h²hh³hÊh´K ubeh}”(h]”Œ.hisilicon-pcie-performance-monitoring-unit-pmu”ah ]”h"]”Œ0hisilicon pcie performance monitoring unit (pmu)”ah$]”h&]”uh1hµhhh²hh³hÊh´Kubeh}”(h]”h ]”h"]”h$]”h&]”Œsource”hÊuh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)”}”(hºNŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”Œentry”Œfootnote_backlinks”KŒ sectnum_xform”KŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œ utf-8-sig”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”jhŒerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”hÊŒ _destination”NŒ _config_files”]”Œ7/var/lib/git/docbuild/linux/Documentation/docutils.conf”aŒfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œdoctitle_xform”‰Œ docinfo_xform”KŒsectsubtitle_xform”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œrefids”}”Œnameids”}”(jBj?j:j7j2j/uŒ nametypes”}”(jB‰j:‰j2‰uh}”(j?h·j7héj/jèuŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”…”R”Œparse_messages”]”Œtransform_messages”]”Œ transformer”NŒ include_log”]”Œ decoration”Nh²hub.