1.. SPDX-License-Identifier: GPL-2.0 2 3========================================================= 4Neterion's (Formerly S2io) Xframe I/II PCI-X 10GbE driver 5========================================================= 6 7Release notes for Neterion's (Formerly S2io) Xframe I/II PCI-X 10GbE driver. 8 9.. Contents 10 - 1. Introduction 11 - 2. Identifying the adapter/interface 12 - 3. Features supported 13 - 4. Command line parameters 14 - 5. Performance suggestions 15 - 6. Available Downloads 16 17 181. Introduction 19=============== 20This Linux driver supports Neterion's Xframe I PCI-X 1.0 and 21Xframe II PCI-X 2.0 adapters. It supports several features 22such as jumbo frames, MSI/MSI-X, checksum offloads, TSO, UFO and so on. 23See below for complete list of features. 24 25All features are supported for both IPv4 and IPv6. 26 272. Identifying the adapter/interface 28==================================== 29 30a. Insert the adapter(s) in your system. 31b. Build and load driver:: 32 33 # insmod s2io.ko 34 35c. View log messages:: 36 37 # dmesg | tail -40 38 39You will see messages similar to:: 40 41 eth3: Neterion Xframe I 10GbE adapter (rev 3), Version 2.0.9.1, Intr type INTA 42 eth4: Neterion Xframe II 10GbE adapter (rev 2), Version 2.0.9.1, Intr type INTA 43 eth4: Device is on 64 bit 133MHz PCIX(M1) bus 44 45The above messages identify the adapter type(Xframe I/II), adapter revision, 46driver version, interface name(eth3, eth4), Interrupt type(INTA, MSI, MSI-X). 47In case of Xframe II, the PCI/PCI-X bus width and frequency are displayed 48as well. 49 50To associate an interface with a physical adapter use "ethtool -p <ethX>". 51The corresponding adapter's LED will blink multiple times. 52 533. Features supported 54===================== 55a. Jumbo frames. Xframe I/II supports MTU up to 9600 bytes, 56 modifiable using ip command. 57 58b. Offloads. Supports checksum offload(TCP/UDP/IP) on transmit 59 and receive, TSO. 60 61c. Multi-buffer receive mode. Scattering of packet across multiple 62 buffers. Currently driver supports 2-buffer mode which yields 63 significant performance improvement on certain platforms(SGI Altix, 64 IBM xSeries). 65 66d. MSI/MSI-X. Can be enabled on platforms which support this feature 67 (IA64, Xeon) resulting in noticeable performance improvement(up to 7% 68 on certain platforms). 69 70e. Statistics. Comprehensive MAC-level and software statistics displayed 71 using "ethtool -S" option. 72 73f. Multi-FIFO/Ring. Supports up to 8 transmit queues and receive rings, 74 with multiple steering options. 75 764. Command line parameters 77========================== 78 79a. tx_fifo_num 80 Number of transmit queues 81 82Valid range: 1-8 83 84Default: 1 85 86b. rx_ring_num 87 Number of receive rings 88 89Valid range: 1-8 90 91Default: 1 92 93c. tx_fifo_len 94 Size of each transmit queue 95 96Valid range: Total length of all queues should not exceed 8192 97 98Default: 4096 99 100d. rx_ring_sz 101 Size of each receive ring(in 4K blocks) 102 103Valid range: Limited by memory on system 104 105Default: 30 106 107e. intr_type 108 Specifies interrupt type. Possible values 0(INTA), 2(MSI-X) 109 110Valid values: 0, 2 111 112Default: 2 113 1145. Performance suggestions 115========================== 116 117General: 118 119a. Set MTU to maximum(9000 for switch setup, 9600 in back-to-back configuration) 120b. Set TCP windows size to optimal value. 121 122For instance, for MTU=1500 a value of 210K has been observed to result in 123good performance:: 124 125 # sysctl -w net.ipv4.tcp_rmem="210000 210000 210000" 126 # sysctl -w net.ipv4.tcp_wmem="210000 210000 210000" 127 128For MTU=9000, TCP window size of 10 MB is recommended:: 129 130 # sysctl -w net.ipv4.tcp_rmem="10000000 10000000 10000000" 131 # sysctl -w net.ipv4.tcp_wmem="10000000 10000000 10000000" 132 133Transmit performance: 134 135a. By default, the driver respects BIOS settings for PCI bus parameters. 136 However, you may want to experiment with PCI bus parameters 137 max-split-transactions(MOST) and MMRBC (use setpci command). 138 139 A MOST value of 2 has been found optimal for Opterons and 3 for Itanium. 140 141 It could be different for your hardware. 142 143 Set MMRBC to 4K**. 144 145 For example you can set 146 147 For opteron:: 148 149 #setpci -d 17d5:* 62=1d 150 151 For Itanium:: 152 153 #setpci -d 17d5:* 62=3d 154 155 For detailed description of the PCI registers, please see Xframe User Guide. 156 157b. Ensure Transmit Checksum offload is enabled. Use ethtool to set/verify this 158 parameter. 159 160c. Turn on TSO(using "ethtool -K"):: 161 162 # ethtool -K <ethX> tso on 163 164Receive performance: 165 166a. By default, the driver respects BIOS settings for PCI bus parameters. 167 However, you may want to set PCI latency timer to 248:: 168 169 #setpci -d 17d5:* LATENCY_TIMER=f8 170 171 For detailed description of the PCI registers, please see Xframe User Guide. 172 173b. Use 2-buffer mode. This results in large performance boost on 174 certain platforms(eg. SGI Altix, IBM xSeries). 175 176c. Ensure Receive Checksum offload is enabled. Use "ethtool -K ethX" command to 177 set/verify this option. 178 179d. Enable NAPI feature(in kernel configuration Device Drivers ---> Network 180 device support ---> Ethernet (10000 Mbit) ---> S2IO 10Gbe Xframe NIC) to 181 bring down CPU utilization. 182 183.. note:: 184 185 For AMD opteron platforms with 8131 chipset, MMRBC=1 and MOST=1 are 186 recommended as safe parameters. 187 188For more information, please review the AMD8131 errata at 189http://vip.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/ 19026310_AMD-8131_HyperTransport_PCI-X_Tunnel_Revision_Guide_rev_3_18.pdf 191 1926. Support 193========== 194 195For further support please contact either your 10GbE Xframe NIC vendor (IBM, 196HP, SGI etc.) 197