Enabling NetQueue on Intel Gigabit Network Devices Using the igb Driver in ESX/ESXi 4.x and ESXi 5.x
book
Article ID: 344494
calendar_today
Updated On:
Products
VMware vSphere ESXi
Issue/Introduction
The asynchronous version of the ESX/ESXi 4.x and ESXi 5.0/5.1 igb driver uses VMware's NetQueue technology to enable Intel Virtual Machine Device Queues (VMDq) support for Ethernet devices based on the Intel 82576 and 82580 Gigabit Ethernet Controllers. VMDq is optional and disabled by default.
Ensure the correct version of the driver is installed and enabled to load automatically at boot:
# esxcfg-module -e igb
Notes:
Currently this is supported on Intel’s ESX/ESXi 4.x and ESXi 5.0/5.1 drivers (igb version 400.2.4.10 and higher) for 82576 and 82580 Gigabit Ethernet Controllers.
Set per each port the optional VMDq load parameters for the igb module.
Configure IntMode=2. Setting a value of 2 for this option specifies using MSI-X, which enables the Ethernet controller to direct interrupt messages to multiple processor cores. MSI-X must be enabled in order for NetQueue to work with VMDq.
Set a value for the parameter to indicate the number of transmit and receive queues. The parameter value ranges from 1 to 8 since Intel 82576 and 82580 based network devices provide a maximum of 8 transmit queues and 8 receive queues per port. The value used sets both the transmit and receive queues to the same number.
For a quad-port adapter, the following configuration turns on VMDq in full on all four ports:
The VMDq configuration is flexible. Systems with multiple ports are enabled and configured by comma-separated lists. The values are applied to the ports in the order they are enumerated on the PCI bus.
The values configured for ports 1 and 2 are:IntMode=0andVMDQ=1
The values configured for ports 3 and 4 are:IntMode=2andVMDQ=8
The values configured for the last two ports are:IntMode=2andVMDQ=4
Reboot the ESX host.
Limitation Notes:
With standard sized Ethernet packets (MTU = 1500 or less), the maximum number of ports supported in VMDq mode is 8, with each port using 8 transmit and receive queues.
When using Jumbo Frames (MTU between 1500 and 9000) and VMDq, the maximum number of supported ports is 4, and also the number of transmit and receive queues per port must be reduced to 4.
Theenabledvalue must equal 1, which indicates the igb module will load automatically.IntModeandVMDQmust be set for each port. The example above shows a configuration with 8 ports, where all interfaces are configured in full VMDq mode.
Determine which ports use the igb driver usingesxcfg-nics. Confirm the driver successfully claimed all supported devices present in the system (enumerate them usinglspciand compare the list with the output ofesxcfg-nics -l). Query the statistics on each interface usingethtool. If VMDq has been enabled successfully, statistics for multiple transmit and receive queues are shown (see tx_queue_0 through tx_queue_7 and rx_queue_0 through rx_queue_7 in the example below).
# esxcfg-nics -l
Name PCI Driver Link Speed Duplex MAC Address MTU Description vmnic0 04:00.00 bnx2 Up 1000Mbps Full xx:xx:xx:xx:xx:xw 1500 Broadcom Corporation Broadcom NetXtreme II BCM5708 1000Base-T vmnic1 08:00.00 bnx2 Down 0Mbps Half xx:xx:xx:xx:xx:xx 1500 Broadcom Corporation Broadcom NetXtreme II BCM5708 1000Base-T vmnic2 0d:00.00 igb Up 1000Mbps Full xx:xx:xx:xx:xx:xy 1500 Intel Corporation 82576 Gigabit Network Connection vmnic3 0d:00.01 igb Up 1000Mbps Full xx:xx:xx:xx:xx:xz 1500 Intel Corporation 82576 Gigabit Network Connection vmnic4 0e:00.00 igb Up 1000Mbps Full xx:xx:xx:xx:xx:x1 1500 Intel Corporation 82576 Gigabit Network Connection vmnic5 0e:00.01 igb Up 1000Mbps Full xx:xx:xx:xx:xx:x2 1500 Intel Corporation 82576 Gigabit Network Connection vmnic6 10:00.00 igb Up 1000Mbps Full xx:xx:xx:xx:xx:x3 1500 Intel Corporation 82580 Gigabit Network Connection vmnic7 10:00.01 igb Up 1000Mbps Full xx:xx:xx:xx:xx:x4 1500 Intel Corporation 82580 Gigabit Network Connection vmnic8 10:00.02 igb Up 1000Mbps Full xx:xx:xx:xx:xx:x5 1500 Intel Corporation 82580 Gigabit Network Connection vmnic9 10:00.03 igb Up 1000Mbps Full xx:xx:xx:xx:xx:x6 1500 Intel Corporation 82580 Gigabit Network Connection