brintos

brintos / linux-shallow public Read only

0
0
Text · 5.2 KiB · adb16e2 Raw
161 lines · plain
1.. SPDX-License-Identifier: GPL-2.0+2 3==========================================================================4idpf Linux* Base Driver for the Intel(R) Infrastructure Data Path Function5==========================================================================6 7Intel idpf Linux driver.8Copyright(C) 2023 Intel Corporation.9 10.. contents::11 12The idpf driver serves as both the Physical Function (PF) and Virtual Function13(VF) driver for the Intel(R) Infrastructure Data Path Function.14 15Driver information can be obtained using ethtool, lspci, and ip.16 17For questions related to hardware requirements, refer to the documentation18supplied with your Intel adapter. All hardware requirements listed apply to use19with Linux.20 21 22Identifying Your Adapter23========================24For information on how to identify your adapter, and for the latest Intel25network drivers, refer to the Intel Support website:26http://www.intel.com/support27 28 29Additional Features and Configurations30======================================31 32ethtool33-------34The driver utilizes the ethtool interface for driver configuration and35diagnostics, as well as displaying statistical information. The latest ethtool36version is required for this functionality. If you don't have one yet, you can37obtain it at:38https://kernel.org/pub/software/network/ethtool/39 40 41Viewing Link Messages42---------------------43Link messages will not be displayed to the console if the distribution is44restricting system messages. In order to see network driver link messages on45your console, set dmesg to eight by entering the following::46 47  # dmesg -n 848 49.. note::50   This setting is not saved across reboots.51 52 53Jumbo Frames54------------55Jumbo Frames support is enabled by changing the Maximum Transmission Unit (MTU)56to a value larger than the default value of 1500.57 58Use the ip command to increase the MTU size. For example, enter the following59where <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 the66   maximum jumbo frame size of 9728 bytes.67 68.. note::69   This driver will attempt to use multiple page sized buffers to receive70   each jumbo packet. This should help to avoid buffer starvation issues when71   allocating receive packets.72 73.. note::74   Packet loss may have a greater impact on throughput when you use jumbo75   frames. If you observe a drop in performance after enabling jumbo frames,76   enabling flow control may mitigate the issue.77 78 79Performance Optimization80========================81Driver defaults are meant to fit a wide variety of workloads, but if further82optimization is required, we recommend experimenting with the following83settings.84 85 86Interrupt Rate Limiting87-----------------------88This driver supports an adaptive interrupt throttle rate (ITR) mechanism that89is tuned for general workloads. The user can customize the interrupt rate90control for specific workloads, via ethtool, adjusting the number of91microseconds between interrupts.92 93To set the interrupt rate manually, you must disable adaptive mode::94 95  # ethtool -C <ethX> adaptive-rx off adaptive-tx off96 97For lower CPU utilization:98 - Disable adaptive ITR and lower Rx and Tx interrupts. The examples below99   affect every queue of the specified interface.100 101 - Setting rx-usecs and tx-usecs to 80 will limit interrupts to about102   12,500 interrupts per second per queue::103 104     # ethtool -C <ethX> adaptive-rx off adaptive-tx off rx-usecs 80105     tx-usecs 80106 107For reduced latency:108 - Disable adaptive ITR and ITR by setting rx-usecs and tx-usecs to 0109   using ethtool::110 111     # ethtool -C <ethX> adaptive-rx off adaptive-tx off rx-usecs 0112     tx-usecs 0113 114Per-queue interrupt rate settings:115 - The following examples are for queues 1 and 3, but you can adjust other116   queues.117 118 - To disable Rx adaptive ITR and set static Rx ITR to 10 microseconds or119   about 100,000 interrupts/second, for queues 1 and 3::120 121     # ethtool --per-queue <ethX> queue_mask 0xa --coalesce adaptive-rx off122     rx-usecs 10123 124 - To show the current coalesce settings for queues 1 and 3::125 126     # ethtool --per-queue <ethX> queue_mask 0xa --show-coalesce127 128 129 130Virtualized Environments131------------------------132In addition to the other suggestions in this section, the following may be133helpful to optimize performance in VMs.134 135 - Using the appropriate mechanism (vcpupin) in the VM, pin the CPUs to136   individual LCPUs, making sure to use a set of CPUs included in the137   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 driver140   documentation for the number of queues supported.) For example::141 142     # ethtool -L <virt_interface> rx <max> tx <max>143 144 145Support146=======147For general information, go to the Intel support website at:148http://www.intel.com/support/149 150If an issue is identified with the released source code on a supported kernel151with a supported adapter, email the specific information related to the issue152to intel-wired-lan@lists.osuosl.org.153 154 155Trademarks156==========157Intel is a trademark or registered trademark of Intel Corporation or its158subsidiaries in the United States and/or other countries.159 160* Other names and brands may be claimed as the property of others.161