Manuals

Manuals
Intel I/O Acceleration Technology: Intel Network Adapters User Guide

Back to Contents Page

Intel® I/O Acceleration Technology: Intel® Network Adapters User Guide


Overview
System Requirements
Monitoring Intel® I/OAT Performance
Windows Users
Linux Users


Overview

Intel® I/O Acceleration Technology (Intel® I/OAT) is a new Intel platform network technology that accelerates, optimizes and seamlessly scales the TCP network stack on Microsoft Windows Server and Linux operating systems. Intel® I/OAT is focused on optimizing performance, throughput, and CPU utilization for applications that

  • Use TCP protocol.
  • Have a significant portion of their networking traffic as receive based.
  • Use application buffer sizes larger than 2 KB in Windows and 4 KB in Linux.

Applications with larger buffer sizes typically see greater gains with Intel® I/OAT. It is recommended that you work with your system and applications to determine the best settings for Intel® I/OAT in your environment.


System Requirements

This is a platform-level solution for data movement and several pieces are necessary for a system to be Intel® I/OAT capable:

  • Platform: The platform must be based on the Intel® 5000 Series Chipset with an option in the BIOS to enable Intel® I/OAT.
    NOTE: You must verify whether the Intel® I/OAT DMA function is enabled in the system BIOS. If it is not enabled, Intel® I/OAT will not function. If Intel® I/OAT is not shown in the BIOS, then a BIOS upgrade maybe necessary. 
    NOTE: Intel® I/OAT is disabled by default in the BIOS setup menu. To enable Intel® I/OAT in the BIOS,
    1. Enter the BIOS setup menu.
    2. Go to "Integrated Devices".
    3. Select "I/OAT DMA Engine" and enable it.
  • Operating System: Windows Server 2003 with Service Pack 2 (SP2 contains the Scalable Networking Pack) or SUSE SLES 10 and Red Hat RHEL 5.
  • Network Connectivity Hardware: Intel® I/OAT is available on specific server adapters and network connections available from Intel and other vendors. If you have multiple network adapters in your system, Intel® I/OAT will operate automatically on the compatible models, while non-compatible adapters will pass traffic normally. Supported Intel adapters include the Intel® 10 Gigabit XF SR Server Adapter.
  • Drivers and Connectivity Software: Intel® I/OAT becomes active when all required software support is loaded and enabled.
    For Windows Server 2003, the IOATDMA driver and NDIS miniport driver version 9.3.31.0, or greater, must be installed.
    For SUSE SLES 10 and Red Hat RHEL 5, the Intel IOATDMA module must be loaded.
  • System Memory: System memory channels should be fully populated for optimal performance. It is recommended to have a minimum of 4 GB of system memory or 1 GB per channel. Refer to you system guide for specific information regarding memory channels.
NOTE: At least one Intel® I/OAT capable port must be enabled when your system starts up. If no Intel® I/OAT capable ports are enabled at system startup, the IOATDMA driver will not register with NDIS and Intel® I/OAT capable ports enabled after system startup will show no DMA activity. Enable an Intel® I/OAT capable port and reboot to resolve this issue.

Monitoring Intel® I/OAT Performance

Windows

Intel® I/OAT performance can be monitored using the Status tab of the Intel® 5000 Series Chipset Driver’s Property Page, which can be found in: Device Manager --> System Device --> 1A38 - Intel 5000 Series Chipset.

The statistics captured are listed below. The counters are updated approximately every second to show Intel® I/OAT activity.

Counter Description
DMA Count Channel x Provides DMACountChannelx for Channel 0, Channel 1, Channel 2 or Channel 3.
DMA Rate Channel x Provides the DMARateChannelx.
Total DMA Count Provides the total count of DMAs requested across all queues.
Total DMA Rate Provides the rate of all DMA requests across all queues.

Intel® I/OAT performance can also be monitored using the Microsoft supplied application perfmon.exe. The DMA Count Channel x, DMA Rate Channel x, Total DMA Count and Total DMA Rate counters must be added to monitor Intel® I/OAT statistics:

  1. Open perfmon.exe and navigate to the Add Counters page.
  2. Make you computer selection from the Select counters from computer drop-down menu.
  3. Select IOATDMA_DMA_STATS from the Performance object drop-down menu.
NOTE: IOATDMA_DMA_STATS may not appear in the object drop-down menu. If this occurs, exit and re-open the Add Counters page. Repeat steps 2 and 3. IOATDMA_DMA_STATS will not appear in the object drop-down menu of the Add Counters page for approximately three minutes after initial installation or a reboot.
  1. Highlight the counter you want to add from the Select counters from list box and highlight the instance for the counter from the Select instances from list box.
  2. Click on the Add button.

Linux

In a Linux environment, Intel® I/OAT performance can be monitored using the statistics provided by the DMA driver. For additional information regarding the channel entries, see Intel® I/OAT sysfs Interface.

Tuning Your System

For optimal benefits from the Intel® I/OAT network solution, your system memory channels should be fully populated. Intel recommends a minimum of 4 GB of system memory or 1 GB per channel. Typically, there are two memory slots per channel. For example, slots 0 and 1 are associated with memory channel 0. Refer to your system guide for specific information regarding memory channels.

For a Windows environment, if your system has only one physical dual-core CPU, you will only see two DMA channels in use even if four ports are enabled in the system using Intel® I/OAT.

In a Windows environment, the following advanced settings must be enabled:

  • RSS
  • Offload Receive IP Checksum
  • Offload Receive TCP Checksum

In a Linux environment, the tcp_dma_copybreak variable represents the lower limit of the size of the socket reads that will be offloaded to the DMA copy engine when CONFIG_NET_DMA is enabled. The default value is 4096 bytes. Lowering this limit reduces the threshold when offloading will be enabled.

The tcp_low_latency system variable (/proc/sys/net/ipv4/tcp_low_latency) ensures data is forwarded through the TCP stack to the application buffer. When this variable is set to a value of 1, it disables tcp_prequeue in the Linux IPv4 TCP stack and no offloading will occur.


Windows Users

Windows Requirements for Intel® I/OAT

The following conditions must be met to fully support Intel® I/OAT in a Windows environment.

  • Windows Server 2003 SP2 must be installed.
  • The registry key must be present and set to the appropriate values.
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
    "EnableTCPA"=dword:0000 0001
  • At least one network adapter in the system must be able to perform all three tasks:
    • Offload TCP and IP checksum in the hardware
    • Compute the RSS hash value for TCP IPv4 packets
    • Must not report TCP Chimney Offload capability
  • The received packet must be TCP/IP and larger than 1460 bytes.
  • The networking application must support pre-post buffers for TCP/IP to place received networking packets.

Windows Restrictions for Intel® I/OAT

In a Windows environment, Intel® I/OAT will not be supported with any of the following features regardless of the registry settings:

  • Windows firewall
  • Internet Protocol Security (IPSec) Policy applied
  • Internet Protocol Network Address Translation (IPNAT)
  • Third-party firewalls
  • NDIS 5.1 intermediate drivers
  • TCP Options
    NOTE:
    • TCP Window Scaling Option: The TCP Window Scaling Option can be enabled on either the client or server side or both sides (tcp1323 set to 1). This still allows Intel® I/OAT offload of incoming packets. However, you will not see the synchronizing packets since the Window Scaling Option is only present in these packets.
    • TCP Timestamp Option: If you do not see any Intel® I/OAT offload, verify the TCP Timestamp Option on both the server and client sides. The tcp1323 option should be set to a value other than 2 or 3. A reboot is required for this registry setting change to take effect. If you do not have access to the client systems with the TCP Timestamp Option present, you will not be able to use Intel® I/OAT offload for incoming packets from these clients since their packets will have the Timestamp Option present in every TCP packet.  
  • IP Options

When remote access and routing services are enabled, you must create an interface of which NAT is a part. If you create a NAT interface, Intel® I/OAT will not work. The IPSec service is either enabled or disabled regardless of this feature. If IPSec service is enabled, you must not apply an IPSec policy. If an IPSec policy is applied, Intel® I/OAT will not work. A reboot is required if a NAT interface was created or an IPSec policy was applied and then disabled in order for Intel® I/OAT to function.

Under heavy network loads, the user interface may go into a live lock because all available system interrupts are being used to process network traffic. By design, Windows prioritizes the network server request over local GUI activity. To avoid this situation, you should examine the application and network load on the server and consider either distributing the load between multiple servers or upgrading the server hardware.


Linux Users

Linux System Requirements

  • Mainboard chipset: Intel® 5000 Series Chipsets Integrated Device - 1A38
  • Linux OS: The ioatdma driver will build on kernels with Intel® I/OAT support for kernel versions 2.6.18 and above.
  • Drivers: ixgbe LAN driver, version 7.3.xx or higher and ioatdma driver

For additional information on Intel® I/O Acceleration Technology (Intel® I/OAT), see the following website: http://www.intel.com/technology/ioacceleration/index.htm.

Integration

The ioatdma-x.x.tar.gz does not include the kernel patch required to enable Intel® I/OAT. Refer to the readme.txt file for more information.

Support for Intel® I/OAT is included starting with the 2.6.18 kernel. Some distributions, such as Novell SLES 10, have also integrated the patch into their kernels. In these cases, integrating the kernel patch is not required for Intel® I/OAT support. Thus, use the ioatdma-x.x.tar.gz.

NOTE: If the kernel does support Intel® I/OAT, skip to the Configuration section.

If the 1A38 chipset integrated system device is not listed under lspci, make sure it is enabled in the BIOS menu:
--> Integrated Device --> I/OAT DMA Engine

By default, it is disabled.

Configuration

The ioatdma driver is a loadable module. The required steps to make and install the module are:

  1. Rename the old module to minimize the potential confusion.
      cd /lib/modules/`uname –r`/kernel/drivers/dma/
      mv ioatdma.ko ioatdma_old.ko
     
  2. Make and install the ioatdma module.
      make
      make install
     
  3. Ensure that the updated module is used.
      depmod –a

If you are using the TCP Timestamp Option and do not see any Intel® I/OAT offload, verify the /proc/sys/net/ipv4/tcp_timestamp setting. It must be set to 0 for Intel® I/OAT to offload the traffic originated from those clients. No reboot is required for Linux. If you do not have access to the client systems with the TCP Timestamp Option present, you will not be able to use Intel® I/OAT offload for incoming packets from these clients since their packets will have the Timestamp Option present in every TCP packet.

Enabling and Disabling Intel® I/OAT

The Intel® I/OAT network accelerations are enabled by loading the Intel® I/OAT DMA engine driver at runtime. The driver module filename is ioatdma.ko. Intel® I/OAT support should also be enabled in the kernel (refer to the Integration section for instructions).

To enable Intel® I/OAT, load the ioatdma driver module:
    modprobe ioatdma

Removing the ioatdma module once it has been loaded is not recommended since TCP receives a hold reference to the ioatdma driver when offloading traffic. However, if the "Forced module unloading" option is enabled in the kernel, the module may be unloaded with:
    rmmod -f ioatdma

WARNING: The rmmod command may hang the system. For this reason, the module is listed as "unsafe" in the modules status listing as viewed with the "lsmod" command.

Intel Intel® I/OAT sysfs Interface

When the Intel® I/OAT driver is properly loaded, directories are created in sysfs, under /sys/class/dma, named dma0chanX, where X is 0, 1, 2 or 3.

Channel Entries Description
in_use This will equal 1 if the DMA channel is allocated to a client, such as the network stack.
bytes_transferred The total number of bytes transferred by either the DMA engine or CPU copy.
memcpy_count The total number of copy operations initiated.

Please read all restrictions and disclaimers.


Back to Contents Page

Laptops | Desktops | Business Laptops | Business Desktops | Workstations | Servers | Storage | Services | Monitors | Printers | LCD TVs | Electronics
© 2012 Dell | About Dell | Terms & Conditions | Unresolved Issues | Privacy Statement | Ads and Emails | Dell Recycling | Contact | Site Map | Feedback
AT | AU | BE | BR | CA | CH | CL | CN | CO | DE | DK | ES | FR | HK | IE | IN | IT | JP | KR | ME | MX | MY | NL | NO | PA | PR | RU | SE | SG | UK | VE | ALL

snWEB6