197 lines · plain
1.. SPDX-License-Identifier: GPL-2.02 3=========================================================4Neterion's (Formerly S2io) Xframe I/II PCI-X 10GbE driver5=========================================================6 7Release notes for Neterion's (Formerly S2io) Xframe I/II PCI-X 10GbE driver.8 9.. Contents10 - 1. Introduction11 - 2. Identifying the adapter/interface12 - 3. Features supported13 - 4. Command line parameters14 - 5. Performance suggestions15 - 6. Available Downloads16 17 181. Introduction19===============20This Linux driver supports Neterion's Xframe I PCI-X 1.0 and21Xframe II PCI-X 2.0 adapters. It supports several features22such 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/interface28====================================29 30a. Insert the adapter(s) in your system.31b. Build and load driver::32 33 # insmod s2io.ko34 35c. View log messages::36 37 # dmesg | tail -4038 39You will see messages similar to::40 41 eth3: Neterion Xframe I 10GbE adapter (rev 3), Version 2.0.9.1, Intr type INTA42 eth4: Neterion Xframe II 10GbE adapter (rev 2), Version 2.0.9.1, Intr type INTA43 eth4: Device is on 64 bit 133MHz PCIX(M1) bus44 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 displayed48as 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 supported54=====================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 transmit59 and receive, TSO.60 61c. Multi-buffer receive mode. Scattering of packet across multiple62 buffers. Currently driver supports 2-buffer mode which yields63 significant performance improvement on certain platforms(SGI Altix,64 IBM xSeries).65 66d. MSI/MSI-X. Can be enabled on platforms which support this feature67 resulting in noticeable performance improvement (up to 7% on certain68 platforms).69 70e. Statistics. Comprehensive MAC-level and software statistics displayed71 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 parameters77==========================78 79a. tx_fifo_num80 Number of transmit queues81 82Valid range: 1-883 84Default: 185 86b. rx_ring_num87 Number of receive rings88 89Valid range: 1-890 91Default: 192 93c. tx_fifo_len94 Size of each transmit queue95 96Valid range: Total length of all queues should not exceed 819297 98Default: 409699 100d. rx_ring_sz101 Size of each receive ring(in 4K blocks)102 103Valid range: Limited by memory on system104 105Default: 30106 107e. intr_type108 Specifies interrupt type. Possible values 0(INTA), 2(MSI-X)109 110Valid values: 0, 2111 112Default: 2113 1145. Performance suggestions115==========================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 in123good 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 parameters137 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 set146 147 For opteron::148 149 #setpci -d 17d5:* 62=1d150 151 For Itanium::152 153 #setpci -d 17d5:* 62=3d154 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 this158 parameter.159 160c. Turn on TSO(using "ethtool -K")::161 162 # ethtool -K <ethX> tso on163 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=f8170 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 on174 certain platforms(eg. SGI Altix, IBM xSeries).175 176c. Ensure Receive Checksum offload is enabled. Use "ethtool -K ethX" command to177 set/verify this option.178 179d. Enable NAPI feature(in kernel configuration Device Drivers ---> Network180 device support ---> Ethernet (10000 Mbit) ---> S2IO 10Gbe Xframe NIC) to181 bring down CPU utilization.182 183.. note::184 185 For AMD opteron platforms with 8131 chipset, MMRBC=1 and MOST=1 are186 recommended as safe parameters.187 188For more information, please review the AMD8131 errata at189http://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.pdf191 1926. Support193==========194 195For further support please contact either your 10GbE Xframe NIC vendor (IBM,196HP, SGI etc.)197