WIP FPC-III support
[linux/fpc-iii.git] / Documentation / networking / device_drivers / ethernet / neterion / s2io.rst
blobc5673ec4559ba7339339435581bf4de6f6fe7067
1 .. SPDX-License-Identifier: GPL-2.0
3 =========================================================
4 Neterion's (Formerly S2io) Xframe I/II PCI-X 10GbE driver
5 =========================================================
7 Release notes for Neterion's (Formerly S2io) Xframe I/II PCI-X 10GbE driver.
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
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.
25 All features are supported for both IPv4 and IPv6.
27 2. Identifying the adapter/interface
28 ====================================
30 a. Insert the adapter(s) in your system.
31 b. Build and load driver::
33         # insmod s2io.ko
35 c. View log messages::
37         # dmesg | tail -40
39 You will see messages similar to::
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
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.
50 To associate an interface with a physical adapter use "ethtool -p <ethX>".
51 The corresponding adapter's LED will blink multiple times.
53 3. Features supported
54 =====================
55 a. Jumbo frames. Xframe I/II supports MTU up to 9600 bytes,
56    modifiable using ip command.
58 b. Offloads. Supports checksum offload(TCP/UDP/IP) on transmit
59    and receive, TSO.
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).
66 d. 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).
70 e. Statistics. Comprehensive MAC-level and software statistics displayed
71    using "ethtool -S" option.
73 f. Multi-FIFO/Ring. Supports up to 8 transmit queues and receive rings,
74    with multiple steering options.
76 4. Command line parameters
77 ==========================
79 a. tx_fifo_num
80         Number of transmit queues
82 Valid range: 1-8
84 Default: 1
86 b. rx_ring_num
87         Number of receive rings
89 Valid range: 1-8
91 Default: 1
93 c. tx_fifo_len
94         Size of each transmit queue
96 Valid range: Total length of all queues should not exceed 8192
98 Default: 4096
100 d. rx_ring_sz
101         Size of each receive ring(in 4K blocks)
103 Valid range: Limited by memory on system
105 Default: 30
107 e. intr_type
108         Specifies interrupt type. Possible values 0(INTA), 2(MSI-X)
110 Valid values: 0, 2
112 Default: 2
114 5. Performance suggestions
115 ==========================
117 General:
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.
122 For instance, for MTU=1500 a value of 210K has been observed to result in
123 good performance::
125         # sysctl -w net.ipv4.tcp_rmem="210000 210000 210000"
126         # sysctl -w net.ipv4.tcp_wmem="210000 210000 210000"
128 For MTU=9000, TCP window size of 10 MB is recommended::
130         # sysctl -w net.ipv4.tcp_rmem="10000000 10000000 10000000"
131         # sysctl -w net.ipv4.tcp_wmem="10000000 10000000 10000000"
133 Transmit performance:
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).
139    A MOST value of 2 has been found optimal for Opterons and 3 for Itanium.
141    It could be different for your hardware.
143    Set MMRBC to 4K**.
145    For example you can set
147    For opteron::
149         #setpci -d 17d5:* 62=1d
151    For Itanium::
153         #setpci -d 17d5:* 62=3d
155    For detailed description of the PCI registers, please see Xframe User Guide.
157 b. Ensure Transmit Checksum offload is enabled. Use ethtool to set/verify this
158    parameter.
160 c. Turn on TSO(using "ethtool -K")::
162         # ethtool -K <ethX> tso on
164 Receive performance:
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::
169         #setpci -d 17d5:* LATENCY_TIMER=f8
171    For detailed description of the PCI registers, please see Xframe User Guide.
173 b. Use 2-buffer mode. This results in large performance boost on
174    certain platforms(eg. SGI Altix, IBM xSeries).
176 c. Ensure Receive Checksum offload is enabled. Use "ethtool -K ethX" command to
177    set/verify this option.
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.
183 .. note::
185    For AMD opteron platforms with 8131 chipset, MMRBC=1 and MOST=1 are
186    recommended as safe parameters.
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
192 6. Support
193 ==========
195 For further support please contact either your 10GbE Xframe NIC vendor (IBM,
196 HP, SGI etc.)