|
| 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 | + |
| 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. |
0 commit comments