1 .. SPDX-License-Identifier: GPL-2.0 2 3 ========================================================= 4 Neterion's (Formerly S2io) Xframe I/II PCI-X 10GbE driver 5 ========================================================= 6 7 Release 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 18 1. Introduction 19 =============== 20 This Linux driver supports Neterion's Xframe I PCI-X 1.0 and 21 Xframe II PCI-X 2.0 adapters. It supports several features 22 such as jumbo frames, MSI/MSI-X, checksum offloads, TSO, UFO and so on. 23 See below for complete list of features. 24 25 All features are supported for both IPv4 and IPv6. 26 27 2. Identifying the adapter/interface 28 ==================================== 29 30 a. Insert the adapter(s) in your system. 31 b. Build and load driver:: 32 33 # insmod s2io.ko 34 35 c. View log messages:: 36 37 # dmesg | tail -40 38 39 You 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 45 The above messages identify the adapter type(Xframe I/II), adapter revision, 46 driver version, interface name(eth3, eth4), Interrupt type(INTA, MSI, MSI-X). 47 In case of Xframe II, the PCI/PCI-X bus width and frequency are displayed 48 as well. 49 50 To associate an interface with a physical adapter use "ethtool -p <ethX>". 51 The corresponding adapter's LED will blink multiple times. 52 53 3. Features supported 54 ===================== 55 a. Jumbo frames. Xframe I/II supports MTU up to 9600 bytes, 56 modifiable using ip command. 57 58 b. Offloads. Supports checksum offload(TCP/UDP/IP) on transmit 59 and receive, TSO. 60 61 c. 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 66 d. MSI/MSI-X. Can be enabled on platforms which support this feature 67 resulting in noticeable performance improvement (up to 7% on certain 68 platforms). 69 70 e. Statistics. Comprehensive MAC-level and software statistics displayed 71 using "ethtool -S" option. 72 73 f. Multi-FIFO/Ring. Supports up to 8 transmit queues and receive rings, 74 with multiple steering options. 75 76 4. Command line parameters 77 ========================== 78 79 a. tx_fifo_num 80 Number of transmit queues 81 82 Valid range: 1-8 83 84 Default: 1 85 86 b. rx_ring_num 87 Number of receive rings 88 89 Valid range: 1-8 90 91 Default: 1 92 93 c. tx_fifo_len 94 Size of each transmit queue 95 96 Valid range: Total length of all queues should not exceed 8192 97 98 Default: 4096 99 100 d. rx_ring_sz 101 Size of each receive ring(in 4K blocks) 102 103 Valid range: Limited by memory on system 104 105 Default: 30 106 107 e. intr_type 108 Specifies interrupt type. Possible values 0(INTA), 2(MSI-X) 109 110 Valid values: 0, 2 111 112 Default: 2 113 114 5. Performance suggestions 115 ========================== 116 117 General: 118 119 a. Set MTU to maximum(9000 for switch setup, 9600 in back-to-back configuration) 120 b. Set TCP windows size to optimal value. 121 122 For instance, for MTU=1500 a value of 210K has been observed to result in 123 good performance:: 124 125 # sysctl -w net.ipv4.tcp_rmem="210000 210000 210000" 126 # sysctl -w net.ipv4.tcp_wmem="210000 210000 210000" 127 128 For 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 133 Transmit performance: 134 135 a. 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 157 b. Ensure Transmit Checksum offload is enabled. Use ethtool to set/verify this 158 parameter. 159 160 c. Turn on TSO(using "ethtool -K"):: 161 162 # ethtool -K <ethX> tso on 163 164 Receive performance: 165 166 a. 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 173 b. Use 2-buffer mode. This results in large performance boost on 174 certain platforms(eg. SGI Altix, IBM xSeries). 175 176 c. Ensure Receive Checksum offload is enabled. Use "ethtool -K ethX" command to 177 set/verify this option. 178 179 d. 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 188 For more information, please review the AMD8131 errata at 189 http://vip.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/ 190 26310_AMD-8131_HyperTransport_PCI-X_Tunnel_Revision_Guide_rev_3_18.pdf 191 192 6. Support 193 ========== 194 195 For further support please contact either your 10GbE Xframe NIC vendor (IBM, 196 HP, SGI etc.)
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.