Linux-2.6.12-rc2
[linux-3.10.git] / Documentation / networking / s2io.txt
1 S2IO Technologies XFrame 10 Gig adapter.
2 -------------------------------------------
3
4 I. Module loadable parameters.
5 When loaded as a module, the driver provides a host of Module loadable
6 parameters, so the device can be tuned as per the users needs.
7 A list of the Module params is given below.
8 (i)     ring_num: This can be used to program the number of
9                  receive rings used in the driver.
10 (ii)    ring_len: This defines the number of descriptors each ring
11                  can have. There can be a maximum of 8 rings.
12 (iii)   frame_len: This is an array of size 8. Using this we can 
13                  set the maximum size of the received frame that can
14                  be steered into the corrsponding receive ring. 
15 (iv)    fifo_num: This defines the number of Tx FIFOs thats used in
16                  the driver. 
17 (v)     fifo_len: Each element defines the number of 
18                  Tx descriptors that can be associated with each 
19                  corresponding FIFO. There are a maximum of 8 FIFOs.
20 (vi)    tx_prio: This is a bool, if module is loaded with a non-zero
21                 value for tx_prio multi FIFO scheme is activated.
22 (vii)   rx_prio: This is a bool, if module is loaded with a non-zero
23                 value for tx_prio multi RING scheme is activated.
24 (viii)  latency_timer: The value given against this param will be
25                  loaded into the latency timer register in PCI Config
26                  space, else the register is left with its reset value.
27
28 II. Performance tuning.
29  By changing a few sysctl parameters.
30         Copy the following lines into a file and run the following command,
31         "sysctl -p <file_name>"
32 ### IPV4 specific settings
33 net.ipv4.tcp_timestamps = 0 # turns TCP timestamp support off, default 1, reduces CPU use
34 net.ipv4.tcp_sack = 0 # turn SACK support off, default on
35 # on systems with a VERY fast bus -> memory interface this is the big gainer
36 net.ipv4.tcp_rmem = 10000000 10000000 10000000 # sets min/default/max TCP read buffer, default 4096 87380 174760
37 net.ipv4.tcp_wmem = 10000000 10000000 10000000 # sets min/pressure/max TCP write buffer, default 4096 16384 131072
38 net.ipv4.tcp_mem = 10000000 10000000 10000000 # sets min/pressure/max TCP buffer space, default 31744 32256 32768
39                                                                                 
40 ### CORE settings (mostly for socket and UDP effect)
41 net.core.rmem_max = 524287 # maximum receive socket buffer size, default 131071
42 net.core.wmem_max = 524287 # maximum send socket buffer size, default 131071
43 net.core.rmem_default = 524287 # default receive socket buffer size, default 65535
44 net.core.wmem_default = 524287 # default send socket buffer size, default 65535
45 net.core.optmem_max = 524287 # maximum amount of option memory buffers, default 10240
46 net.core.netdev_max_backlog = 300000 # number of unprocessed input packets before kernel starts dropping them, default 300
47 ---End of performance tuning file---
48