summaryrefslogtreecommitdiff
path: root/Documentation/networking/s2io.txt
blob: 6726b524ec45a5af03c488fad19fd942de93972a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
S2IO Technologies XFrame 10 Gig adapter.
-------------------------------------------

I. Module loadable parameters.
When loaded as a module, the driver provides a host of Module loadable
parameters, so the device can be tuned as per the users needs.
A list of the Module params is given below.
(i)	ring_num: This can be used to program the number of
		 receive rings used in the driver.
(ii)	ring_len: This defines the number of descriptors each ring
		 can have. There can be a maximum of 8 rings.
(iii)	frame_len: This is an array of size 8. Using this we can 
		 set the maximum size of the received frame that can
		 be steered into the corrsponding receive ring.	
(iv)	fifo_num: This defines the number of Tx FIFOs thats used in
		 the driver. 
(v)	fifo_len: Each element defines the number of 
 		 Tx descriptors that can be associated with each 
		 corresponding FIFO. There are a maximum of 8 FIFOs.
(vi)	tx_prio: This is a bool, if module is loaded with a non-zero
		value for tx_prio multi FIFO scheme is activated.
(vii)	rx_prio: This is a bool, if module is loaded with a non-zero
		value for tx_prio multi RING scheme is activated.
(viii)	latency_timer: The value given against this param will be
		 loaded	into the latency timer register in PCI Config
		 space, else the register is left with its reset value.

II. Performance tuning.
 By changing a few sysctl parameters.
	Copy the following lines into a file and run the following command,
	"sysctl -p <file_name>"
### IPV4 specific settings
net.ipv4.tcp_timestamps = 0 # turns TCP timestamp support off, default 1, reduces CPU use
net.ipv4.tcp_sack = 0 # turn SACK support off, default on
# on systems with a VERY fast bus -> memory interface this is the big gainer
net.ipv4.tcp_rmem = 10000000 10000000 10000000 # sets min/default/max TCP read buffer, default 4096 87380 174760
net.ipv4.tcp_wmem = 10000000 10000000 10000000 # sets min/pressure/max TCP write buffer, default 4096 16384 131072
net.ipv4.tcp_mem = 10000000 10000000 10000000 # sets min/pressure/max TCP buffer space, default 31744 32256 32768
                                                                                
### CORE settings (mostly for socket and UDP effect)
net.core.rmem_max = 524287 # maximum receive socket buffer size, default 131071
net.core.wmem_max = 524287 # maximum send socket buffer size, default 131071
net.core.rmem_default = 524287 # default receive socket buffer size, default 65535
net.core.wmem_default = 524287 # default send socket buffer size, default 65535
net.core.optmem_max = 524287 # maximum amount of option memory buffers, default 10240
net.core.netdev_max_backlog = 300000 # number of unprocessed input packets before kernel starts dropping them, default 300
---End of performance tuning file---