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 " ### 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---