Multiqueue, Large receive offload (lro) – Dell Intel PRO Family of Adapters User Manual

Page 80

Advertising
background image

Multiqueue

In this mode, a separate MSI-X vector is allocated for each queue and one for “other” interrupts such as link status
change and errors. All interrupts are throttled via interrupt moderation. Interrupt moderation must be used to avoid inter-
rupt storms while the driver is processing one interrupt. The moderation value should be at least as large as the expec-
ted time for the driver to process an interrupt. Multiqueue is off by default.

MSI-X support is required for Multiqueue. If MSI-X is not found, the system will fallback to MSI or to Legacy interrupts.
This driver supports multiqueue in kernel versions 2.6.24 and greater and supports receive multiqueue on all kernels
supporting MSI-X.

NOTES:

l

Do not use MSI-X with the 2.6.19 or 2.6.20 kernels. It is recommended to use the 2.6.21 or later ker-
nel.

l

Some kernels require a reboot to switch between single queue mode and multiqueue modes or
vice-versa.

Large Receive Offload (LRO)

Large Receive Offload (LRO) is a technique for increasing inbound throughput of high-bandwidth network connections
by reducing CPU overhead. It works by aggregating multiple incoming packets from a single stream into a larger buffer
before they are passed higher up the networking stack, thus reducing the number of packets that have to be processed.
LRO combines multiple Ethernet frames into a single receive in the stack, thereby potentially decreasing CPU util-
ization for receives.

NOTE: LRO requires 2.6.22 or later kernel version.

IGB_LRO is a compile time flag. It can be enabled at compile time to add support for LRO from the driver. The flag is
used by adding CFLAGS_EXTRA="-DIGB_LRO" to the make file when it is being compiled. For example:

# make CFLAGS_EXTRA="-DIGB_LRO" install

You can verify that the driver is using LRO by looking at these counters in ethtool:

l

lro_aggregated - count of total packets that were combined

l

lro_flushed - counts the number of packets flushed out of LRO

l

lro_no_desc - counts the number of times an LRO descriptor was not available for the LRO packet

NOTE: IPv6 and UDP are not supported by LRO.

IEEE 1588 Precision Time Protocol (PTP) Hardware Clock (PHC)

Precision Time Protocol (PTP) is an implementation of the IEEE 1588 specification allowing network cards to syn-
chronize their clocks over a PTP-enabled network. It works through a series of synchronization and delay notification
transactions that allow a software daemon to implement a PID controller to synchronize the network card clocks.

NOTE: PTP requires a 3.0.0 or later kernel version with PTP support enabled in the kernel and a user-space soft-
ware daemon.

IGB_PTP is a compile time flag. The user can enable it at compile time to add support for PTP from the driver. The flag
is used by adding CFLAGS_EXTRA="-DIGB_PTP" to the make file when it's being compiled:

make CFLAGS_EXTRA="-DIGB_PTP" install

NOTE: The driver will fail to compile if your kernel does not support PTP.

You can verify that the driver is using PTP by looking at the system log to see whether a PHC was attempted to be
registered or not. If you have a kernel and version of ethtool with PTP support, you can check the PTP support in the
driver by executing:

ethtool -T ethX

Advertising