161 lines
		
	
	
		
			5.2 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
			
		
		
	
	
			161 lines
		
	
	
		
			5.2 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
| .. SPDX-License-Identifier: GPL-2.0+
 | |
| 
 | |
| ==========================================================================
 | |
| idpf Linux* Base Driver for the Intel(R) Infrastructure Data Path Function
 | |
| ==========================================================================
 | |
| 
 | |
| Intel idpf Linux driver.
 | |
| Copyright(C) 2023 Intel Corporation.
 | |
| 
 | |
| .. contents::
 | |
| 
 | |
| The idpf driver serves as both the Physical Function (PF) and Virtual Function
 | |
| (VF) driver for the Intel(R) Infrastructure Data Path Function.
 | |
| 
 | |
| Driver information can be obtained using ethtool, lspci, and ip.
 | |
| 
 | |
| For questions related to hardware requirements, refer to the documentation
 | |
| supplied with your Intel adapter. All hardware requirements listed apply to use
 | |
| with Linux.
 | |
| 
 | |
| 
 | |
| Identifying Your Adapter
 | |
| ========================
 | |
| For information on how to identify your adapter, and for the latest Intel
 | |
| network drivers, refer to the Intel Support website:
 | |
| http://www.intel.com/support
 | |
| 
 | |
| 
 | |
| Additional Features and Configurations
 | |
| ======================================
 | |
| 
 | |
| ethtool
 | |
| -------
 | |
| The driver utilizes the ethtool interface for driver configuration and
 | |
| diagnostics, as well as displaying statistical information. The latest ethtool
 | |
| version is required for this functionality. If you don't have one yet, you can
 | |
| obtain it at:
 | |
| https://kernel.org/pub/software/network/ethtool/
 | |
| 
 | |
| 
 | |
| Viewing Link Messages
 | |
| ---------------------
 | |
| Link messages will not be displayed to the console if the distribution is
 | |
| restricting system messages. In order to see network driver link messages on
 | |
| your console, set dmesg to eight by entering the following::
 | |
| 
 | |
|   # dmesg -n 8
 | |
| 
 | |
| .. note::
 | |
|    This setting is not saved across reboots.
 | |
| 
 | |
| 
 | |
| Jumbo Frames
 | |
| ------------
 | |
| Jumbo Frames support is enabled by changing the Maximum Transmission Unit (MTU)
 | |
| to a value larger than the default value of 1500.
 | |
| 
 | |
| Use the ip command to increase the MTU size. For example, enter the following
 | |
| where <ethX> is the interface number::
 | |
| 
 | |
|   # ip link set mtu 9000 dev <ethX>
 | |
|   # ip link set up dev <ethX>
 | |
| 
 | |
| .. note::
 | |
|    The maximum MTU setting for jumbo frames is 9706. This corresponds to the
 | |
|    maximum jumbo frame size of 9728 bytes.
 | |
| 
 | |
| .. note::
 | |
|    This driver will attempt to use multiple page sized buffers to receive
 | |
|    each jumbo packet. This should help to avoid buffer starvation issues when
 | |
|    allocating receive packets.
 | |
| 
 | |
| .. note::
 | |
|    Packet loss may have a greater impact on throughput when you use jumbo
 | |
|    frames. If you observe a drop in performance after enabling jumbo frames,
 | |
|    enabling flow control may mitigate the issue.
 | |
| 
 | |
| 
 | |
| Performance Optimization
 | |
| ========================
 | |
| Driver defaults are meant to fit a wide variety of workloads, but if further
 | |
| optimization is required, we recommend experimenting with the following
 | |
| settings.
 | |
| 
 | |
| 
 | |
| Interrupt Rate Limiting
 | |
| -----------------------
 | |
| This driver supports an adaptive interrupt throttle rate (ITR) mechanism that
 | |
| is tuned for general workloads. The user can customize the interrupt rate
 | |
| control for specific workloads, via ethtool, adjusting the number of
 | |
| microseconds between interrupts.
 | |
| 
 | |
| To set the interrupt rate manually, you must disable adaptive mode::
 | |
| 
 | |
|   # ethtool -C <ethX> adaptive-rx off adaptive-tx off
 | |
| 
 | |
| For lower CPU utilization:
 | |
|  - Disable adaptive ITR and lower Rx and Tx interrupts. The examples below
 | |
|    affect every queue of the specified interface.
 | |
| 
 | |
|  - Setting rx-usecs and tx-usecs to 80 will limit interrupts to about
 | |
|    12,500 interrupts per second per queue::
 | |
| 
 | |
|      # ethtool -C <ethX> adaptive-rx off adaptive-tx off rx-usecs 80
 | |
|      tx-usecs 80
 | |
| 
 | |
| For reduced latency:
 | |
|  - Disable adaptive ITR and ITR by setting rx-usecs and tx-usecs to 0
 | |
|    using ethtool::
 | |
| 
 | |
|      # ethtool -C <ethX> adaptive-rx off adaptive-tx off rx-usecs 0
 | |
|      tx-usecs 0
 | |
| 
 | |
| Per-queue interrupt rate settings:
 | |
|  - The following examples are for queues 1 and 3, but you can adjust other
 | |
|    queues.
 | |
| 
 | |
|  - To disable Rx adaptive ITR and set static Rx ITR to 10 microseconds or
 | |
|    about 100,000 interrupts/second, for queues 1 and 3::
 | |
| 
 | |
|      # ethtool --per-queue <ethX> queue_mask 0xa --coalesce adaptive-rx off
 | |
|      rx-usecs 10
 | |
| 
 | |
|  - To show the current coalesce settings for queues 1 and 3::
 | |
| 
 | |
|      # ethtool --per-queue <ethX> queue_mask 0xa --show-coalesce
 | |
| 
 | |
| 
 | |
| 
 | |
| Virtualized Environments
 | |
| ------------------------
 | |
| In addition to the other suggestions in this section, the following may be
 | |
| helpful to optimize performance in VMs.
 | |
| 
 | |
|  - Using the appropriate mechanism (vcpupin) in the VM, pin the CPUs to
 | |
|    individual LCPUs, making sure to use a set of CPUs included in the
 | |
|    device's local_cpulist: /sys/class/net/<ethX>/device/local_cpulist.
 | |
| 
 | |
|  - Configure as many Rx/Tx queues in the VM as available. (See the idpf driver
 | |
|    documentation for the number of queues supported.) For example::
 | |
| 
 | |
|      # ethtool -L <virt_interface> rx <max> tx <max>
 | |
| 
 | |
| 
 | |
| Support
 | |
| =======
 | |
| For general information, go to the Intel support website at:
 | |
| http://www.intel.com/support/
 | |
| 
 | |
| If an issue is identified with the released source code on a supported kernel
 | |
| with a supported adapter, email the specific information related to the issue
 | |
| to intel-wired-lan@lists.osuosl.org.
 | |
| 
 | |
| 
 | |
| Trademarks
 | |
| ==========
 | |
| Intel is a trademark or registered trademark of Intel Corporation or its
 | |
| subsidiaries in the United States and/or other countries.
 | |
| 
 | |
| * Other names and brands may be claimed as the property of others.
 |