Merge tag '5.15-rc-cifs-part2' of git://git.samba.org/sfrench/cifs-2.6
[linux-2.6-microblaze.git] / Documentation / networking / device_drivers / ethernet / neterion / s2io.rst
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    (IA64, Xeon) resulting in noticeable performance improvement(up to 7%
68    on certain 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.)