~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/admin-guide/perf/hisi-pcie-pmu.rst

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /Documentation/admin-guide/perf/hisi-pcie-pmu.rst (Version linux-6.11.5) and /Documentation/admin-guide/perf/hisi-pcie-pmu.rst (Version linux-5.17.15)


  1 ==============================================      1 ================================================
  2 HiSilicon PCIe Performance Monitoring Unit (PM      2 HiSilicon PCIe Performance Monitoring Unit (PMU)
  3 ==============================================      3 ================================================
  4                                                     4 
  5 On Hip09, HiSilicon PCIe Performance Monitorin      5 On Hip09, HiSilicon PCIe Performance Monitoring Unit (PMU) could monitor
  6 bandwidth, latency, bus utilization and buffer      6 bandwidth, latency, bus utilization and buffer occupancy data of PCIe.
  7                                                     7 
  8 Each PCIe Core has a PMU to monitor multi Root      8 Each PCIe Core has a PMU to monitor multi Root Ports of this PCIe Core and
  9 all Endpoints downstream these Root Ports.          9 all Endpoints downstream these Root Ports.
 10                                                    10 
 11                                                    11 
 12 HiSilicon PCIe PMU driver                          12 HiSilicon PCIe PMU driver
 13 =========================                          13 =========================
 14                                                    14 
 15 The PCIe PMU driver registers a perf PMU with      15 The PCIe PMU driver registers a perf PMU with the name of its sicl-id and PCIe
 16 Core id.::                                         16 Core id.::
 17                                                    17 
 18   /sys/bus/event_source/hisi_pcie<sicl>_core<c !!  18   /sys/bus/event_source/hisi_pcie<sicl>_<core>
 19                                                    19 
 20 PMU driver provides description of available e     20 PMU driver provides description of available events and filter options in sysfs,
 21 see /sys/bus/event_source/devices/hisi_pcie<si !!  21 see /sys/bus/event_source/devices/hisi_pcie<sicl>_<core>.
 22                                                    22 
 23 The "format" directory describes all formats o     23 The "format" directory describes all formats of the config (events) and config1
 24 (filter options) fields of the perf_event_attr     24 (filter options) fields of the perf_event_attr structure. The "events" directory
 25 describes all documented events shown in perf      25 describes all documented events shown in perf list.
 26                                                    26 
 27 The "identifier" sysfs file allows users to id     27 The "identifier" sysfs file allows users to identify the version of the
 28 PMU hardware device.                               28 PMU hardware device.
 29                                                    29 
 30 The "bus" sysfs file allows users to get the b     30 The "bus" sysfs file allows users to get the bus number of Root Ports
 31 monitored by PMU.                                  31 monitored by PMU.
 32                                                    32 
 33 Example usage of perf::                            33 Example usage of perf::
 34                                                    34 
 35   $# perf list                                     35   $# perf list
 36   hisi_pcie0_core0/rx_mwr_latency/ [kernel PMU !!  36   hisi_pcie0_0/rx_mwr_latency/ [kernel PMU event]
 37   hisi_pcie0_core0/rx_mwr_cnt/ [kernel PMU eve !!  37   hisi_pcie0_0/rx_mwr_cnt/ [kernel PMU event]
 38   ------------------------------------------       38   ------------------------------------------
 39                                                    39 
 40   $# perf stat -e hisi_pcie0_core0/rx_mwr_late !!  40   $# perf stat -e hisi_pcie0_0/rx_mwr_latency/
 41   $# perf stat -e hisi_pcie0_core0/rx_mwr_cnt, !!  41   $# perf stat -e hisi_pcie0_0/rx_mwr_cnt/
 42                                                !!  42   $# perf stat -g -e hisi_pcie0_0/rx_mwr_latency/ -e hisi_pcie0_0/rx_mwr_cnt/
 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                                                    43 
 56 The current driver does not support sampling.      44 The current driver does not support sampling. So "perf record" is unsupported.
 57 Also attach to a task is unsupported for PCIe      45 Also attach to a task is unsupported for PCIe PMU.
 58                                                    46 
 59 Filter options                                     47 Filter options
 60 --------------                                     48 --------------
 61                                                    49 
 62 1. Target filter                                   50 1. Target filter
                                                   >>  51 PMU could only monitor the performance of traffic downstream target Root Ports
                                                   >>  52 or downstream target Endpoint. PCIe PMU driver support "port" and "bdf"
                                                   >>  53 interfaces for users, and these two interfaces aren't supported at the same
                                                   >>  54 time.
                                                   >>  55 
                                                   >>  56 -port
                                                   >>  57 "port" filter can be used in all PCIe PMU events, target Root Port can be
                                                   >>  58 selected by configuring the 16-bits-bitmap "port". Multi ports can be selected
                                                   >>  59 for AP-layer-events, and only one port can be selected for TL/DL-layer-events.
                                                   >>  60 
                                                   >>  61 For example, if target Root Port is 0000:00:00.0 (x8 lanes), bit0 of bitmap
                                                   >>  62 should be set, port=0x1; if target Root Port is 0000:00:04.0 (x4 lanes),
                                                   >>  63 bit8 is set, port=0x100; if these two Root Ports are both monitored, port=0x101.
 63                                                    64 
 64    PMU could only monitor the performance of t !!  65 Example usage of perf::
 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                                                    66 
 87        $# perf stat -e hisi_pcie0_core0/rx_mwr !!  67   $# perf stat -e hisi_pcie0_0/rx_mwr_latency,port=0x1/ sleep 5
 88                                                    68 
 89    - bdf                                       !!  69 -bdf
 90                                                    70 
 91      "bdf" filter can only be used in bandwidt !!  71 "bdf" filter can only be used in bandwidth events, target Endpoint is selected
 92      selected by configuring BDF to "bdf". Cou !!  72 by configuring BDF to "bdf". Counter only counts the bandwidth of message
 93      message requested by target Endpoint.     !!  73 requested by target Endpoint.
 94                                                    74 
 95      For example, "bdf=0x3900" means BDF of ta !!  75 For example, "bdf=0x3900" means BDF of target Endpoint is 0000:39:00.0.
 96                                                    76 
 97      Example usage of perf::                   !!  77 Example usage of perf::
 98                                                    78 
 99        $# perf stat -e hisi_pcie0_core0/rx_mrd !!  79   $# perf stat -e hisi_pcie0_0/rx_mrd_flux,bdf=0x3900/ sleep 5
100                                                    80 
101 2. Trigger filter                                  81 2. Trigger filter
                                                   >>  82 Event statistics start when the first time TLP length is greater/smaller
                                                   >>  83 than trigger condition. You can set the trigger condition by writing "trig_len",
                                                   >>  84 and set the trigger mode by writing "trig_mode". This filter can only be used
                                                   >>  85 in bandwidth events.
                                                   >>  86 
                                                   >>  87 For example, "trig_len=4" means trigger condition is 2^4 DW, "trig_mode=0"
                                                   >>  88 means statistics start when TLP length > trigger condition, "trig_mode=1"
                                                   >>  89 means start when TLP length < condition.
102                                                    90 
103    Event statistics start when the first time  !!  91 Example usage of perf::
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                                                    92 
114      $# perf stat -e hisi_pcie0_core0/rx_mrd_f !!  93   $# perf stat -e hisi_pcie0_0/rx_mrd_flux,trig_len=0x4,trig_mode=1/ sleep 5
115                                                    94 
116 3. Threshold filter                                95 3. Threshold filter
                                                   >>  96 Counter counts when TLP length within the specified range. You can set the
                                                   >>  97 threshold by writing "thr_len", and set the threshold mode by writing
                                                   >>  98 "thr_mode". This filter can only be used in bandwidth events.
                                                   >>  99 
                                                   >> 100 For example, "thr_len=4" means threshold is 2^4 DW, "thr_mode=0" means
                                                   >> 101 counter counts when TLP length >= threshold, and "thr_mode=1" means counts
                                                   >> 102 when TLP length < threshold.
117                                                   103 
118    Counter counts when TLP length within the s !! 104 Example usage of perf::
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                                                   105 
146      $# perf stat -e hisi_pcie0_core0/rx_mrd_f !! 106   $# perf stat -e hisi_pcie0_0/rx_mrd_flux,thr_len=0x4,thr_mode=1/ sleep 5
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php