1Release notes for Neterion's (Formerly S2io) Xframe I/II PCI-X 10GbE driver. 2 3Contents 4======= 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 11 12 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. 19 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 2.0.9.1, Intr type INTA 28eth4: Neterion Xframe II 10GbE adapter (rev 2), Version 2.0.9.1, Intr type INTA 29eth4: Device is on 64 bit 133MHz PCIX(M1) bus 30 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. 35 36To associate an interface with a physical adapter use "ethtool -p <ethX>". 37The corresponding adapter's LED will blink multiple times. 38 393. Features supported: 40a. Jumbo frames. Xframe I/II supports MTU up to 9600 bytes, 41modifiable using ip command. 42 43b. Offloads. Supports checksum offload(TCP/UDP/IP) on transmit 44and receive, TSO. 45 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). 50 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). 54 55e. Statistics. Comprehensive MAC-level and software statistics displayed 56using "ethtool -S" option. 57 58f. Multi-FIFO/Ring. Supports up to 8 transmit queues and receive rings, 59with multiple steering options. 60 614. Command line parameters 62a. tx_fifo_num 63Number of transmit queues 64Valid range: 1-8 65Default: 1 66 67b. rx_ring_num 68Number of receive rings 69Valid range: 1-8 70Default: 1 71 72c. tx_fifo_len 73Size of each transmit queue 74Valid range: Total length of all queues should not exceed 8192 75Default: 4096 76 77d. rx_ring_sz 78Size of each receive ring(in 4K blocks) 79Valid range: Limited by memory on system 80Default: 30 81 82e. intr_type 83Specifies interrupt type. Possible values 0(INTA), 2(MSI-X) 84Valid values: 0, 2 85Default: 2 86 875. Performance suggestions 88General: 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" 98 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**. 106 107For example you can set 108For opteron 109#setpci -d 17d5:* 62=1d 110For Itanium 111#setpci -d 17d5:* 62=3d 112 113For detailed description of the PCI registers, please see Xframe User Guide. 114 115b. Ensure Transmit Checksum offload is enabled. Use ethtool to set/verify this 116parameter. 117c. Turn on TSO(using "ethtool -K") 118# ethtool -K <ethX> tso on 119 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. 132 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 136http://vip.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/ 13726310_AMD-8131_HyperTransport_PCI-X_Tunnel_Revision_Guide_rev_3_18.pdf 138 1396. Support 140For further support please contact either your 10GbE Xframe NIC vendor (IBM, 141HP, SGI etc.) 142