diff options
| author | Linus Torvalds <torvalds@g5.osdl.org> | 2005-08-30 14:16:30 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-08-30 14:16:30 -0400 |
| commit | 6b39374a27eb4be7e9d82145ae270ba02ea90dc8 (patch) | |
| tree | 09933113cf28f253db1dd539463bdab741d67139 | |
| parent | 62c592edead3c3a045662595f7ade3c12f133373 (diff) | |
| parent | ed735ccbefaf7e5e3ef61418f7e209b8c59308a7 (diff) | |
Merge refs/heads/upstream from master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6.git
30 files changed, 11159 insertions, 90 deletions
diff --git a/Documentation/networking/cxgb.txt b/Documentation/networking/cxgb.txt new file mode 100644 index 000000000000..76324638626b --- /dev/null +++ b/Documentation/networking/cxgb.txt | |||
| @@ -0,0 +1,352 @@ | |||
| 1 | Chelsio N210 10Gb Ethernet Network Controller | ||
| 2 | |||
| 3 | Driver Release Notes for Linux | ||
| 4 | |||
| 5 | Version 2.1.1 | ||
| 6 | |||
| 7 | June 20, 2005 | ||
| 8 | |||
| 9 | CONTENTS | ||
| 10 | ======== | ||
| 11 | INTRODUCTION | ||
| 12 | FEATURES | ||
| 13 | PERFORMANCE | ||
| 14 | DRIVER MESSAGES | ||
| 15 | KNOWN ISSUES | ||
| 16 | SUPPORT | ||
| 17 | |||
| 18 | |||
| 19 | INTRODUCTION | ||
| 20 | ============ | ||
| 21 | |||
| 22 | This document describes the Linux driver for Chelsio 10Gb Ethernet Network | ||
| 23 | Controller. This driver supports the Chelsio N210 NIC and is backward | ||
| 24 | compatible with the Chelsio N110 model 10Gb NICs. | ||
| 25 | |||
| 26 | |||
| 27 | FEATURES | ||
| 28 | ======== | ||
| 29 | |||
| 30 | Adaptive Interrupts (adaptive-rx) | ||
| 31 | --------------------------------- | ||
| 32 | |||
| 33 | This feature provides an adaptive algorithm that adjusts the interrupt | ||
| 34 | coalescing parameters, allowing the driver to dynamically adapt the latency | ||
| 35 | settings to achieve the highest performance during various types of network | ||
| 36 | load. | ||
| 37 | |||
| 38 | The interface used to control this feature is ethtool. Please see the | ||
| 39 | ethtool manpage for additional usage information. | ||
| 40 | |||
| 41 | By default, adaptive-rx is disabled. | ||
| 42 | To enable adaptive-rx: | ||
| 43 | |||
| 44 | ethtool -C <interface> adaptive-rx on | ||
| 45 | |||
| 46 | To disable adaptive-rx, use ethtool: | ||
| 47 | |||
| 48 | ethtool -C <interface> adaptive-rx off | ||
| 49 | |||
| 50 | After disabling adaptive-rx, the timer latency value will be set to 50us. | ||
| 51 | You may set the timer latency after disabling adaptive-rx: | ||
| 52 | |||
| 53 | ethtool -C <interface> rx-usecs <microseconds> | ||
| 54 | |||
| 55 | An example to set the timer latency value to 100us on eth0: | ||
| 56 | |||
| 57 | ethtool -C eth0 rx-usecs 100 | ||
| 58 | |||
| 59 | You may also provide a timer latency value while disabling adpative-rx: | ||
| 60 | |||
| 61 | ethtool -C <interface> adaptive-rx off rx-usecs <microseconds> | ||
| 62 | |||
| 63 | If adaptive-rx is disabled and a timer latency value is specified, the timer | ||
| 64 | will be set to the specified value until changed by the user or until | ||
| 65 | adaptive-rx is enabled. | ||
| 66 | |||
| 67 | To view the status of the adaptive-rx and timer latency values: | ||
| 68 | |||
| 69 | ethtool -c <interface> | ||
| 70 | |||
| 71 | |||
| 72 | TCP Segmentation Offloading (TSO) Support | ||
| 73 | ----------------------------------------- | ||
| 74 | |||
| 75 | This feature, also known as "large send", enables a system's protocol stack | ||
| 76 | to offload portions of outbound TCP processing to a network interface card | ||
| 77 | thereby reducing system CPU utilization and enhancing performance. | ||
| 78 | |||
| 79 | The interface used to control this feature is ethtool version 1.8 or higher. | ||
| 80 | Please see the ethtool manpage for additional usage information. | ||
| 81 | |||
| 82 | By default, TSO is enabled. | ||
| 83 | To disable TSO: | ||
| 84 | |||
| 85 | ethtool -K <interface> tso off | ||
| 86 | |||
| 87 | To enable TSO: | ||
| 88 | |||
| 89 | ethtool -K <interface> tso on | ||
| 90 | |||
| 91 | To view the status of TSO: | ||
| 92 | |||
| 93 | ethtool -k <interface> | ||
| 94 | |||
| 95 | |||
| 96 | PERFORMANCE | ||
| 97 | =========== | ||
| 98 | |||
| 99 | The following information is provided as an example of how to change system | ||
| 100 | parameters for "performance tuning" an what value to use. You may or may not | ||
| 101 | want to change these system parameters, depending on your server/workstation | ||
| 102 | application. Doing so is not warranted in any way by Chelsio Communications, | ||
| 103 | and is done at "YOUR OWN RISK". Chelsio will not be held responsible for loss | ||
| 104 | of data or damage to equipment. | ||
| 105 | |||
| 106 | Your distribution may have a different way of doing things, or you may prefer | ||
| 107 | a different method. These commands are shown only to provide an example of | ||
| 108 | what to do and are by no means definitive. | ||
| 109 | |||
| 110 | Making any of the following system changes will only last until you reboot | ||
| 111 | your system. You may want to write a script that runs at boot-up which | ||
| 112 | includes the optimal settings for your system. | ||
| 113 | |||
| 114 | Setting PCI Latency Timer: | ||
| 115 | setpci -d 1425:* 0x0c.l=0x0000F800 | ||
| 116 | |||
| 117 | Disabling TCP timestamp: | ||
| 118 | sysctl -w net.ipv4.tcp_timestamps=0 | ||
| 119 | |||
| 120 | Disabling SACK: | ||
| 121 | sysctl -w net.ipv4.tcp_sack=0 | ||
| 122 | |||
| 123 | Setting large number of incoming connection requests: | ||
| 124 | sysctl -w net.ipv4.tcp_max_syn_backlog=3000 | ||
| 125 | |||
| 126 | Setting maximum receive socket buffer size: | ||
| 127 | sysctl -w net.core.rmem_max=1024000 | ||
| 128 | |||
| 129 | Setting maximum send socket buffer size: | ||
| 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 | ||
| 134 | |||
| 135 | Setting default receive socket buffer size: | ||
| 136 | sysctl -w net.core.rmem_default=524287 | ||
| 137 | |||
| 138 | Setting default send socket buffer size: | ||
| 139 | sysctl -w net.core.wmem_default=524287 | ||
| 140 | |||
| 141 | Setting maximum option memory buffers: | ||
| 142 | sysctl -w net.core.optmem_max=524287 | ||
| 143 | |||
| 144 | Setting maximum backlog (# of unprocessed packets before kernel drops): | ||
| 145 | sysctl -w net.core.netdev_max_backlog=300000 | ||
| 146 | |||
| 147 | Setting TCP read buffers (min/default/max): | ||
| 148 | sysctl -w net.ipv4.tcp_rmem="10000000 10000000 10000000" | ||
