1Release notes for Neterion's (Formerly S2io) Xframe I/II PCI-X 10GbE driver.
   5- 1.  Introduction
   6- 2.  Identifying the adapter/interface
   7- 3.  Features supported
   8- 4.  Command line parameters
   9- 5.  Performance suggestions
  10- 6.  Available Downloads 
  131.      Introduction:
  14This Linux driver supports Neterion's Xframe I PCI-X 1.0 and
  15Xframe II PCI-X 2.0 adapters. It supports several features 
  16such as jumbo frames, MSI/MSI-X, checksum offloads, TSO, UFO and so on.
  17See below for complete list of features.
  18All features are supported for both IPv4 and IPv6.
  202.      Identifying the adapter/interface:
  21a. Insert the adapter(s) in your system.
  22b. Build and load driver 
  23# insmod s2io.ko
  24c. View log messages
  25# dmesg | tail -40
  26You will see messages similar to:
  27eth3: Neterion Xframe I 10GbE adapter (rev 3), Version, Intr type INTA
  28eth4: Neterion Xframe II 10GbE adapter (rev 2), Version, Intr type INTA
  29eth4: Device is on 64 bit 133MHz PCIX(M1) bus
  31The above messages identify the adapter type(Xframe I/II), adapter revision,
  32driver version, interface name(eth3, eth4), Interrupt type(INTA, MSI, MSI-X).
  33In case of Xframe II, the PCI/PCI-X bus width and frequency are displayed
  34as well.
  36To associate an interface with a physical adapter use "ethtool -p <ethX>".
  37The corresponding adapter's LED will blink multiple times.
  393.      Features supported:
  40a. Jumbo frames. Xframe I/II supports MTU up to 9600 bytes,
  41modifiable using ifconfig command.
  43b. Offloads. Supports checksum offload(TCP/UDP/IP) on transmit
  44and receive, TSO.
  46c. Multi-buffer receive mode. Scattering of packet across multiple
  47buffers. Currently driver supports 2-buffer mode which yields
  48significant performance improvement on certain platforms(SGI Altix,
  49IBM xSeries).
  51d. MSI/MSI-X. Can be enabled on platforms which support this feature
  52(IA64, Xeon) resulting in noticeable performance improvement(up to 7%
  53on certain platforms).
  55e. Statistics. Comprehensive MAC-level and software statistics displayed
  56using "ethtool -S" option.
  58f. Multi-FIFO/Ring. Supports up to 8 transmit queues and receive rings,
  59with multiple steering options.
  614.  Command line parameters
  62a. tx_fifo_num
  63Number of transmit queues
  64Valid range: 1-8
  65Default: 1
  67b. rx_ring_num
  68Number of receive rings
  69Valid range: 1-8
  70Default: 1
  72c. tx_fifo_len
  73Size of each transmit queue
  74Valid range: Total length of all queues should not exceed 8192
  75Default: 4096
  77d. rx_ring_sz 
  78Size of each receive ring(in 4K blocks)
  79Valid range: Limited by memory on system
  80Default: 30 
  82e. intr_type
  83Specifies interrupt type. Possible values 0(INTA), 2(MSI-X)
  84Valid values: 0, 2
  85Default: 2
  875.  Performance suggestions
  89a. Set MTU to maximum(9000 for switch setup, 9600 in back-to-back configuration)
  90b. Set TCP windows size to optimal value. 
  91For instance, for MTU=1500 a value of 210K has been observed to result in 
  92good performance.
  93# sysctl -w net.ipv4.tcp_rmem="210000 210000 210000"
  94# sysctl -w net.ipv4.tcp_wmem="210000 210000 210000"
  95For MTU=9000, TCP window size of 10 MB is recommended.
  96# sysctl -w net.ipv4.tcp_rmem="10000000 10000000 10000000"
  97# sysctl -w net.ipv4.tcp_wmem="10000000 10000000 10000000"
  99Transmit performance:
 100a. By default, the driver respects BIOS settings for PCI bus parameters. 
 101However, you may want to experiment with PCI bus parameters 
 102max-split-transactions(MOST) and MMRBC (use setpci command). 
 103A MOST value of 2 has been found optimal for Opterons and 3 for Itanium.  
 104It could be different for your hardware.  
 105Set MMRBC to 4K**.
 107For example you can set 
 108For opteron
 109#setpci -d 17d5:* 62=1d 
 110For Itanium
 111#setpci -d 17d5:* 62=3d 
 113For detailed description of the PCI registers, please see Xframe User Guide.
 115b. Ensure Transmit Checksum offload is enabled. Use ethtool to set/verify this 
 117c. Turn on TSO(using "ethtool -K")
 118# ethtool -K <ethX> tso on
 120Receive performance:
 121a. By default, the driver respects BIOS settings for PCI bus parameters. 
 122However, you may want to set PCI latency timer to 248.
 123#setpci -d 17d5:* LATENCY_TIMER=f8
 124For detailed description of the PCI registers, please see Xframe User Guide.
 125b. Use 2-buffer mode. This results in large performance boost on
 126certain platforms(eg. SGI Altix, IBM xSeries).
 127c. Ensure Receive Checksum offload is enabled. Use "ethtool -K ethX" command to 
 128set/verify this option.
 129d. Enable NAPI feature(in kernel configuration Device Drivers ---> Network 
 130device support --->  Ethernet (10000 Mbit) ---> S2IO 10Gbe Xframe NIC) to 
 131bring down CPU utilization.
 133** For AMD opteron platforms with 8131 chipset, MMRBC=1 and MOST=1 are 
 134recommended as safe parameters.
 135For more information, please review the AMD8131 errata at
 1396. Support
 140For further support please contact either your 10GbE Xframe NIC vendor (IBM, 
 141HP, SGI etc.)
 142 kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.