diff options
Diffstat (limited to 'Documentation/networking')
-rw-r--r-- | Documentation/networking/cxgb.txt | 72 |
1 files changed, 51 insertions, 21 deletions
diff --git a/Documentation/networking/cxgb.txt b/Documentation/networking/cxgb.txt index 9f2eb646c6f5..76324638626b 100644 --- a/Documentation/networking/cxgb.txt +++ b/Documentation/networking/cxgb.txt | |||
@@ -2,9 +2,9 @@ | |||
2 | 2 | ||
3 | Driver Release Notes for Linux | 3 | Driver Release Notes for Linux |
4 | 4 | ||
5 | Version 2.1.0 | 5 | Version 2.1.1 |
6 | 6 | ||
7 | March 8, 2005 | 7 | June 20, 2005 |
8 | 8 | ||
9 | CONTENTS | 9 | CONTENTS |
10 | ======== | 10 | ======== |
@@ -21,8 +21,7 @@ INTRODUCTION | |||
21 | 21 | ||
22 | This document describes the Linux driver for Chelsio 10Gb Ethernet Network | 22 | This document describes the Linux driver for Chelsio 10Gb Ethernet Network |
23 | Controller. This driver supports the Chelsio N210 NIC and is backward | 23 | Controller. This driver supports the Chelsio N210 NIC and is backward |
24 | compatible with the Chelsio N110 model 10Gb NICs. This driver supports AMD64 | 24 | compatible with the Chelsio N110 model 10Gb NICs. |
25 | and EM64T, and x86 systems. | ||
26 | 25 | ||
27 | 26 | ||
28 | FEATURES | 27 | FEATURES |
@@ -121,23 +120,17 @@ PERFORMANCE | |||
121 | Disabling SACK: | 120 | Disabling SACK: |
122 | sysctl -w net.ipv4.tcp_sack=0 | 121 | sysctl -w net.ipv4.tcp_sack=0 |
123 | 122 | ||
124 | Setting TCP read buffers (min/default/max): | 123 | Setting large number of incoming connection requests: |
125 | sysctl -w net.ipv4.tcp_rmem="10000000 10000000 10000000" | ||
126 | |||
127 | Setting TCP write buffers (min/pressure/max): | ||
128 | sysctl -w net.ipv4.tcp_wmem="10000000 10000000 10000000" | ||
129 | |||
130 | Setting TCP buffer space (min/pressure/max): | ||
131 | sysctl -w net.ipv4.tcp_mem="10000000 10000000 10000000" | ||
132 | |||
133 | Setting large number of incoming connection requests (2.6.x only): | ||
134 | sysctl -w net.ipv4.tcp_max_syn_backlog=3000 | 124 | sysctl -w net.ipv4.tcp_max_syn_backlog=3000 |
135 | 125 | ||
136 | Setting maximum receive socket buffer size: | 126 | Setting maximum receive socket buffer size: |
137 | sysctl -w net.core.rmem_max=524287 | 127 | sysctl -w net.core.rmem_max=1024000 |
138 | 128 | ||
139 | Setting maximum send socket buffer size: | 129 | Setting maximum send socket buffer size: |
140 | sysctl -w net.core.wmem_max=524287 | 130 | sysctl -w net.core.wmem_max=1024000 |
131 | |||
132 | Set smp_affinity (on a multiprocessor system) to a single CPU: | ||
133 | echo 1 > /proc/irq/<interrupt_number>/smp_affinity | ||
141 | 134 | ||
142 | Setting default receive socket buffer size: | 135 | Setting default receive socket buffer size: |
143 | sysctl -w net.core.rmem_default=524287 | 136 | sysctl -w net.core.rmem_default=524287 |
@@ -151,8 +144,14 @@ PERFORMANCE | |||
151 | Setting maximum backlog (# of unprocessed packets before kernel drops): | 144 | Setting maximum backlog (# of unprocessed packets before kernel drops): |
152 | sysctl -w net.core.netdev_max_backlog=300000 | 145 | sysctl -w net.core.netdev_max_backlog=300000 |
153 | 146 | ||
154 | Set smp_affinity (on a multiprocessor system) to a single CPU: | 147 | Setting TCP read buffers (min/default/max): |
155 | echo 00000001 > /proc/irq/<interrupt_number>/smp_affinity | 148 | sysctl -w net.ipv4.tcp_rmem="10000000 10000000 10000000" |
149 | |||
150 | Setting TCP write buffers (min/pressure/max): | ||
151 | sysctl -w net.ipv4.tcp_wmem="10000000 10000000 10000000" | ||
152 | |||
153 | Setting TCP buffer space (min/pressure/max): | ||
154 | sysctl -w net.ipv4.tcp_mem="10000000 10000000 10000000" | ||
156 | 155 | ||
157 | TCP window size for single connections: | 156 | TCP window size for single connections: |
158 | The receive buffer (RX_WINDOW) size must be at least as large as the | 157 | The receive buffer (RX_WINDOW) size must be at least as large as the |
@@ -186,7 +185,7 @@ DRIVER MESSAGES | |||
186 | may be found in /var/log/messages. | 185 | may be found in /var/log/messages. |
187 | 186 | ||
188 | Driver up: | 187 | Driver up: |
189 | Chelsio Network Driver - version 2.1.0 | 188 | Chelsio Network Driver - version 2.1.1 |
190 | 189 | ||
191 | NIC detected: | 190 | NIC detected: |
192 | eth#: Chelsio N210 1x10GBaseX NIC (rev #), PCIX 133MHz/64-bit | 191 | eth#: Chelsio N210 1x10GBaseX NIC (rev #), PCIX 133MHz/64-bit |
@@ -282,13 +281,44 @@ KNOWN ISSUES | |||
282 | the number of outstanding transactions, via BIOS configuration | 281 | the number of outstanding transactions, via BIOS configuration |
283 | programming of the PCI-X card, to the following: | 282 | programming of the PCI-X card, to the following: |
284 | 283 | ||
285 | Data Length (bytes): 2k | 284 | Data Length (bytes): 1k |
286 | Total allowed outstanding transactions: 1 | 285 | Total allowed outstanding transactions: 2 |
287 | 286 | ||
288 | Please refer to AMD 8131-HT/PCI-X Errata 26310 Rev 3.08 August 2004, | 287 | Please refer to AMD 8131-HT/PCI-X Errata 26310 Rev 3.08 August 2004, |
289 | section 56, "133-MHz Mode Split Completion Data Corruption" for more | 288 | section 56, "133-MHz Mode Split Completion Data Corruption" for more |
290 | details with this bug and workarounds suggested by AMD. | 289 | details with this bug and workarounds suggested by AMD. |
291 | 290 | ||
291 | It may be possible to work outside AMD's recommended PCI-X settings, try | ||
292 | increasing the Data Length to 2k bytes for increased performance. If you | ||
293 | have issues with these settings, please revert to the "safe" settings | ||
294 | and duplicate the problem before submitting a bug or asking for support. | ||
295 | |||
296 | NOTE: The default setting on most systems is 8 outstanding transactions | ||
297 | and 2k bytes data length. | ||
298 | |||
299 | 4. On multiprocessor systems, it has been noted that an application which | ||
300 | is handling 10Gb networking can switch between CPUs causing degraded | ||
301 | and/or unstable performance. | ||
302 | |||
303 | If running on an SMP system and taking performance measurements, it | ||
304 | is suggested you either run the latest netperf-2.4.0+ or use a binding | ||
305 | tool such as Tim Hockin's procstate utilities (runon) | ||
306 | <http://www.hockin.org/~thockin/procstate/>. | ||
307 | |||
308 | Binding netserver and netperf (or other applications) to particular | ||
309 | CPUs will have a significant difference in performance measurements. | ||
310 | You may need to experiment which CPU to bind the application to in | ||
311 | order to achieve the best performance for your system. | ||
312 | |||
313 | If you are developing an application designed for 10Gb networking, | ||
314 | please keep in mind you may want to look at kernel functions | ||
315 | sched_setaffinity & sched_getaffinity to bind your application. | ||
316 | |||
317 | If you are just running user-space applications such as ftp, telnet, | ||
318 | etc., you may want to try the runon tool provided by Tim Hockin's | ||
319 | procstate utility. You could also try binding the interface to a | ||
320 | particular CPU: runon 0 ifup eth0 | ||
321 | |||
292 | 322 | ||
293 | SUPPORT | 323 | SUPPORT |
294 | ======= | 324 | ======= |