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

TOMOYO Linux Cross Reference
Linux/Documentation/networking/device_drivers/ethernet/intel/idpf.rst

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ 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.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 .. SPDX-License-Identifier: GPL-2.0+
  2 
  3 ==========================================================================
  4 idpf Linux* Base Driver for the Intel(R) Infrastructure Data Path Function
  5 ==========================================================================
  6 
  7 Intel idpf Linux driver.
  8 Copyright(C) 2023 Intel Corporation.
  9 
 10 .. contents::
 11 
 12 The idpf driver serves as both the Physical Function (PF) and Virtual Function
 13 (VF) driver for the Intel(R) Infrastructure Data Path Function.
 14 
 15 Driver information can be obtained using ethtool, lspci, and ip.
 16 
 17 For questions related to hardware requirements, refer to the documentation
 18 supplied with your Intel adapter. All hardware requirements listed apply to use
 19 with Linux.
 20 
 21 
 22 Identifying Your Adapter
 23 ========================
 24 For information on how to identify your adapter, and for the latest Intel
 25 network drivers, refer to the Intel Support website:
 26 http://www.intel.com/support
 27 
 28 
 29 Additional Features and Configurations
 30 ======================================
 31 
 32 ethtool
 33 -------
 34 The driver utilizes the ethtool interface for driver configuration and
 35 diagnostics, as well as displaying statistical information. The latest ethtool
 36 version is required for this functionality. If you don't have one yet, you can
 37 obtain it at:
 38 https://kernel.org/pub/software/network/ethtool/
 39 
 40 
 41 Viewing Link Messages
 42 ---------------------
 43 Link messages will not be displayed to the console if the distribution is
 44 restricting system messages. In order to see network driver link messages on
 45 your console, set dmesg to eight by entering the following::
 46 
 47   # dmesg -n 8
 48 
 49 .. note::
 50    This setting is not saved across reboots.
 51 
 52 
 53 Jumbo Frames
 54 ------------
 55 Jumbo Frames support is enabled by changing the Maximum Transmission Unit (MTU)
 56 to a value larger than the default value of 1500.
 57 
 58 Use the ip command to increase the MTU size. For example, enter the following
 59 where <ethX> is the interface number::
 60 
 61   # ip link set mtu 9000 dev <ethX>
 62   # ip link set up dev <ethX>
 63 
 64 .. note::
 65    The maximum MTU setting for jumbo frames is 9706. This corresponds to the
 66    maximum jumbo frame size of 9728 bytes.
 67 
 68 .. note::
 69    This driver will attempt to use multiple page sized buffers to receive
 70    each jumbo packet. This should help to avoid buffer starvation issues when
 71    allocating receive packets.
 72 
 73 .. note::
 74    Packet loss may have a greater impact on throughput when you use jumbo
 75    frames. If you observe a drop in performance after enabling jumbo frames,
 76    enabling flow control may mitigate the issue.
 77 
 78 
 79 Performance Optimization
 80 ========================
 81 Driver defaults are meant to fit a wide variety of workloads, but if further
 82 optimization is required, we recommend experimenting with the following
 83 settings.
 84 
 85 
 86 Interrupt Rate Limiting
 87 -----------------------
 88 This driver supports an adaptive interrupt throttle rate (ITR) mechanism that
 89 is tuned for general workloads. The user can customize the interrupt rate
 90 control for specific workloads, via ethtool, adjusting the number of
 91 microseconds between interrupts.
 92 
 93 To set the interrupt rate manually, you must disable adaptive mode::
 94 
 95   # ethtool -C <ethX> adaptive-rx off adaptive-tx off
 96 
 97 For lower CPU utilization:
 98  - Disable adaptive ITR and lower Rx and Tx interrupts. The examples below
 99    affect every queue of the specified interface.
100 
101  - Setting rx-usecs and tx-usecs to 80 will limit interrupts to about
102    12,500 interrupts per second per queue::
103 
104      # ethtool -C <ethX> adaptive-rx off adaptive-tx off rx-usecs 80
105      tx-usecs 80
106 
107 For reduced latency:
108  - Disable adaptive ITR and ITR by setting rx-usecs and tx-usecs to 0
109    using ethtool::
110 
111      # ethtool -C <ethX> adaptive-rx off adaptive-tx off rx-usecs 0
112      tx-usecs 0
113 
114 Per-queue interrupt rate settings:
115  - The following examples are for queues 1 and 3, but you can adjust other
116    queues.
117 
118  - To disable Rx adaptive ITR and set static Rx ITR to 10 microseconds or
119    about 100,000 interrupts/second, for queues 1 and 3::
120 
121      # ethtool --per-queue <ethX> queue_mask 0xa --coalesce adaptive-rx off
122      rx-usecs 10
123 
124  - To show the current coalesce settings for queues 1 and 3::
125 
126      # ethtool --per-queue <ethX> queue_mask 0xa --show-coalesce
127 
128 
129 
130 Virtualized Environments
131 ------------------------
132 In addition to the other suggestions in this section, the following may be
133 helpful to optimize performance in VMs.
134 
135  - Using the appropriate mechanism (vcpupin) in the VM, pin the CPUs to
136    individual LCPUs, making sure to use a set of CPUs included in the
137    device's local_cpulist: /sys/class/net/<ethX>/device/local_cpulist.
138 
139  - Configure as many Rx/Tx queues in the VM as available. (See the idpf driver
140    documentation for the number of queues supported.) For example::
141 
142      # ethtool -L <virt_interface> rx <max> tx <max>
143 
144 
145 Support
146 =======
147 For general information, go to the Intel support website at:
148 http://www.intel.com/support/
149 
150 If an issue is identified with the released source code on a supported kernel
151 with a supported adapter, email the specific information related to the issue
152 to intel-wired-lan@lists.osuosl.org.
153 
154 
155 Trademarks
156 ==========
157 Intel is a trademark or registered trademark of Intel Corporation or its
158 subsidiaries in the United States and/or other countries.
159 
160 * Other names and brands may be claimed as the property of others.

~ [ 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