Commit | Line | Data |
---|---|---|
1da177e4 LT |
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 |