* [net-2.6 PATCH 1/10] Neterion: New driver: Driver help file
@ 2009-03-14 8:20 Ramkrishna Vepa
2009-03-15 19:04 ` Ben Hutchings
0 siblings, 1 reply; 3+ messages in thread
From: Ramkrishna Vepa @ 2009-03-14 8:20 UTC (permalink / raw)
To: Netdev, David Miller, Jeff Garzik; +Cc: Ramkrishna Vepa
- vxge driver help text file.
Signed-off-by: Sivakumar Subramani <sivakumar.subramani@neterion.com>
Signed-off-by: Rastapur Santosh <santosh.rastapur@neterion.com>
Signed-off-by: Ramkrishna Vepa <ram.vepa@neterion.com>
---
diff -urpN org/Documentation/networking/vxge.txt patch_1/Documentation/networking/vxge.txt
--- org/Documentation/networking/vxge.txt 1969-12-31 16:00:00.000000000 -0800
+++ patch_1/Documentation/networking/vxge.txt 2009-03-12 11:23:12.000000000 -0700
@@ -0,0 +1,476 @@
+Release notes for Neterion's (Formerly S2io) X3100 Linux Driver.
+
+contents
+--------
+
+1) Introduction
+2) Load/Unload Neterion driver
+3) Identifying the adapter/interface
+4) Features supported
+5) Configurable driver parameters
+6) Performance Suggestions
+7) Transmit performance
+8) Receive performance
+9) Troubleshooting
+10) Ethtool Support
+11) Known Issues
+12) Common Problems
+13) Available Downloads
+
+1) Introduction:
+----------------
+Linux Driver for Neterion 10 Gigabit Ethernet PCI Express I/O Virtualized Server Adapter
+
+ * This driver supports all Neterion's X3100 10GbE adapters and 2.4.x and 2.6.x kernels.
+ * Supports several features such as jumbo frames, MSI-X, checksum offloads, TSO, LRO and so on.
+(See below for complete list of features supported for both IPv4 and IPv6)
+
+2) Load/Unload Neterion driver:
+-------------------------------
+
+i). Load driver
+ For 2.4 kernel
+ # insmod /lib/modules/<kernel_version>/kernel/drivers/net/vxge.o
+ For 2.6 kernel
+ # insmod /lib/modules/<kernel_version>/kernel/drivers/net/vxge.ko
+ Using modprobe command:
+ # modprobe vxge
+
+ Verify driver loaded using lsmod
+ # lsmod |grep vxge
+
+ii). Configure IP address
+ ifconfig eth# <IP_address> up
+ # ifconfig eth1 17.1.1.100 up
+
+iii). Modify MTU
+ ifconfig eth# mtu <new_mtu>
+ # ifconfig eth1 mtu 9000
+
+iv). Unload driver
+ # ifconfig eth# down
+ # rmmod vxge
+
+3) Identifying the adapter/interface:
+-------------------------------------
+
+i). Insert the adapter(s) in your system.
+
+ii). Load driver
+ # insmod /lib/modules/<kernel_version>/kernel/drivers/net/vxge.ko
+
+ Using modprobe command:
+ # modprobe vxge
+
+iii). View log messages
+ # dmesg | tail -40
+
+ Messages similar to the following will output which identify the adapter
+ type, adapter revision, driver version, interface number, and interrupt type:
+
+ eth2: Neterion 10 Gigabit Ethernet X3110 Rev (2)
+ eth2: MAC ADDR: 00:0C:FC:00:B2:53 SERIAL NUMBER: SXJ0839036
+ eth2: Firmware version: 0.0.34 Date : 12/02/2008
+ eth2: Driver version: v.1.0.0 kernel version 2.6.16
+ eth2: Build time: Nov 25 2008, 23:19:49
+ eth2: 8 Vpath(s) enabled
+ eth2: Interrupt type MSI-X
+ eth2: RTH steering enabled for TCP_IPV4
+ eth2: Tx port steering enabled
+ eth2: Large receive offload enabled
+ eth2: Multiqueue support disabled
+ eth2: VLAN tag stripping disabled
+ eth2: NAPI disabled
+ eth2: Ring blocks : 2
+ eth2: Fifo blocks : 12
+
+iv). To associate an interface with a physical adapter use "ethtool -p eth#".
+ The corresponding adapter's LED will blink until canceled (ctrl+c).
+
+
+4) Features supported:
+----------------------
+
+i) I/O Virtualization Offloads:
+ - Single function mode
+ - Multi function mode
+
+ii) PCI-SIG's I/O Virtualization:
+ - Single Root mode: v1.0
+ - Multi-Root mode: v1.0
+
+iii) Jumbo frames:
+ X3100 Series supports MTU up to 9600 bytes, modifiable using
+ ifconfig command.
+
+iv) Offloads supported:
+ Checksum offload (TCP/UDP/IP) on transmit and receive paths
+ TCP Segmentation Offload (TSO) on transmit path
+ Large Receive Offload (LRO, TCP aggregation) on receive path
+
+v) MSI-X:
+ Can be enabled on platforms which support it, resulting in noticeable
+ performance improvement (up to 7% on certain platforms).
+
+vi) NAPI:
+ For better Rx interrupt moderation.
+
+vii) RTH (Receive Traffic Hash):
+ Receive side steering for better scaling.
+
+viii) Statistics:
+ Comprehensive MAC-level and software statistics displayed using
+ "ethtool -S" option.
+
+ix) Multi-Vpaths:
+ Up to 17 hardware based transmit and receive data channels, with
+ multiple steering options.
+
+
+5) Configurable driver parameters:
+----------------------------------
+
+i) intr_type
+ Specifies interrupt type.
+ Valid range: 0, 2 (INTA, MSI-X respectively)
+ Default: 2
+
+ii) lro
+ Enables/disables Large Receive Offload (LRO).
+ Valid range: 0,1 (disabled, enabled respectively)
+ Default: 1
+
+iii) lro_max_bytes
+ Specifies maximum number of bytes to be aggregated as
+ a single large packet.
+ Valid range: 0-FFFF
+ Default: 0x4000
+
+iv) max_config_dev
+ Specifies maximum device functions to be enabled.
+ Valid range: 1-8
+ Default:
+
+v) max_config_port:
+ Specifies number of ports to be enabled.
+ Valid range: 0,1
+ Default: 1
+
+vi) max_config_vpath:
+ Specifies maximum VPATH(s) configured for each device function.
+ Valid range: 1-17
+ Default:
+
+vii) napi
+ Enables/disables NAPI support.
+ Automatically disabled when intr_type is set to MSI-X on kernels below
+ 2.6.24.
+ Valid range: 0,1 (disabled, enabled respectively)
+ Default: 1
+
+viii) rpa_strip_vlan_tag
+ Enables/disables vlan tag stripping from all received tagged frames that
+ are not replicated at the internal L2 switch.
+ Valid range: 0,1 (disabled, enabled respectively)
+ Default: 1
+
+ix) tx_steering_type
+ Specifies criteria for steering transmitted packets.
+ Valid range: 0-4 (disabled, priority, VLAN ID, multiq and L4 port respectively)
+ Default: 4
+
+The following parameters are used collectively to enable the receive
+traffic steering capability of the driver.
+
+x) addr_learn_en
+ Enable Receive Traffic Steering using MAC destination address.
+ Valid range: 0,1 (disabled, enabled respectively)
+ Default: 0
+
+xi) rx_steering_type
+ Specifies criteria for steering received packets.
+ Valid range: 0-4 (disabled, L4 port, RTH, priority and VLAN ID respectively)
+ Default: 2 (when system supports MSI-X and has more than 4 CPUs)
+
+xii) ring_indicate_max_pkts
+ Sets maximum number of received frames to be processed within single interrupt.
+ Valid range: 1 - 65536
+ Default : 128
+
+xiii) fifo_indicate_max_pkts:
+ Sets maximum number of transmit frames to be processed within single interrupt.
+ Valid range: 1 - 65536
+ Default : 32
+
+xiv) ring_blocks:
+ Numbers of RxD blocks in the ring
+ Valid range: 1 - 128
+ Default : 2
+
+xv) Boot time configuration
+ In order to load option(s) at boot time, add the option(s) to
+ /etc/modprobe.conf.
+ Example:
+ alias eth# vxge
+ options vxge rx_blocks=4 rx_steering_type=2
+
+
+6) Performance Suggestions:
+---------------------------
+
+- Set MTU to maximum - 9000 for switch setup, 9600 for back-to-back.
+For MTU 1500:
+-------------
+### IPV4 specific settings
+# turns TCP timestamp support off, default 1, reduces CPU use
+$sysctl -w net.ipv4.tcp_timestamps = "0"
+# turn SACK support off, default on
+$sysctl -w net.ipv4.tcp_sack="0"
+# on systems with a VERY fast bus -> memory interface this is the big gainer
+# sets min/default/max TCP read buffer, default 4096 87380 174760
+$sysctl -w net.ipv4.tcp_rmem="210000 210000 210000"
+# sets min/pressure/max TCP write buffer, default 4096 16384 131072
+$sysctl -w net.ipv4.tcp_wmem="210000 210000 210000"
+# sets min/pressure/max TCP buffer space, default 31744 32256 32768
+$sysctl -w net.ipv4.tcp_mem="210000 210000 210000"
+
+### CORE settings (mostly for socket and UDP effect)
+# maximum receive socket buffer size, default 131071
+$sysctl -w net.core.rmem_max="524287"
+# maximum send socket buffer size, default 131071
+$sysctl -w net.core.wmem_max="524287"
+# default receive socket buffer size, default 65535
+$sysctl -w net.core.rmem_default="524287"
+# default send socket buffer size, default 65535
+$sysctl -w net.core.wmem_default="524287"
+# maximum amount of option memory buffers, default 10240
+$sysctl -w net.core.optmem_max="524287"
+# number of unprocessed input packets before kernel starts dropping them, default 300
+$sysctl -w net.core.netdev_max_backlog="300000"
+
+For MTU 9000:
+-------------
+### IPV4 specific settings
+# turns TCP timestamp support off, default 1, reduces CPU use
+$sysctl -w net.ipv4.tcp_timestamps = "0"
+# turn SACK support off, default on
+$sysctl -w net.ipv4.tcp_sack="0"
+# on systems with a VERY fast bus -> memory interface this is the big gainer
+# sets min/default/max TCP read buffer, default 4096 87380 174760
+$sysctl -w net.ipv4.tcp_rmem="10000000 10000000 10000000"
+# sets min/pressure/max TCP write buffer, default 4096 16384 131072
+$sysctl -w net.ipv4.tcp_wmem="10000000 10000000 10000000"
+# sets min/pressure/max TCP buffer space, default 31744 32256 32768
+$sysctl -w net.ipv4.tcp_mem="10000000 10000000 10000000"
+
+### CORE settings (mostly for socket and UDP effect)
+# maximum receive socket buffer size, default 131071
+$sysctl -w net.core.rmem_max="524287"
+# maximum send socket buffer size, default 131071
+$sysctl -w net.core.wmem_max="524287"
+# default receive socket buffer size, default 65535
+$sysctl -w net.core.rmem_default="524287"
+# default send socket buffer size, default 65535
+$sysctl -w net.core.wmem_default="524287"
+# maximum amount of option memory buffers, default 10240
+$sysctl -w net.core.optmem_max="524287"
+# number of unprocessed input packets before kernel starts dropping them, default 300
+$sysctl -w net.core.netdev_max_backlog="300000"
+
+7) Transmit performance:
+------------------------
+
+- Ensure Transmit Checksum offload and TSO are enabled.
+ Use ethtool to verify/set these parameters.
+
+ # ethtool -k eth#
+ Offload parameters for eth0:
+ rx-checksumming: on
+ tx-checksumming: on
+ scatter-gather: on
+ tcp segmentation offload: off
+
+- Turn on Transmit Checksum offload and TSO:
+ # ethtool -K eth# tx on
+ # ethtool -K eth# tso on (for 2.6 kernels)
+
+
+8) Receive performance:
+-----------------------
+
+- Ensure Receive Checksum offload is enabled. Use ethtool to verify/set.
+ # ethtool -k eth#
+ # ethtool -K eth# rx on
+
+- If MTU is set to 1500, receive performance can be improved by increasing
+ the default TCP window size and enabling LRO (see "Configurable driver
+ parameters" section).
+ # sysctl -p sysctl_neterion_1500.conf
+
+- Enable NAPI to bring down CPU utilization.
+
+- If CPU bottleneck is being hit (close to 0% idle), you can play around with
+ utilization parameters by using tune_driver script. This may help bring
+ down CPU utilization and improve throughput. See "Driver tuning" section.
+
+
+9) Troubleshooting:
+-------------------
+
+For X3100 adapter assigned eth2
+
+Statistics Dump:
+ # ethtool -S eth2
+
+Register Dump:
+ # ethtool -d eth2
+
+
+Before Contacting Neterion for Support:
+
+i) Please contact your network adapter provider (i.e. OEM or reseller) for
+ initial support.
+
+ii) Run the titanl_dump utility which is included in the linux driver package on
+ Nterion's driver downloads page.
+ # titanl_dump eth#
+
+iii) When contacting Neterion for support, please include the following in
+ your email to support@neterion.com:
+ - The titanl_dump.log.gz file resulting from step 2 above
+ - Brief description of your setup and how you are using
+ your X3100 adapter
+
+
+
+10) Ethtool Support:
+--------------------
+Ethtool is useful for driver configuration, diagnostics and displaying
+statistical information. The latest version of Ethtool is available at
+http://sourceforge.net/projects/gkernel/
+
+ ethtool eth#
+ Displays current device settings
+
+ ethtool -a eth#
+ Displays pause parameter information.
+
+ ethtool -A eth#
+ Changes pause parameters.
+
+ ethtool -d eth#
+ Retrieves and prints a register dump for the specified
+ ethernet device.
+
+ ethtool -e eth# [raw on|off] [offset N] [length N]
+ Retrieves and prints an EEPROM dump for the specified
+ ethernet device. When raw is enabled, then it dumps the raw
+ EEPROM data to stdout. The length and offset parameters allow
+ dumping certain portions of the EEPROM. Default is to dump
+ the entire EEPROM.
+
+ ethtool -E eth# [magic N] [offset N] [value N]
+ Changes EEPROM byte for the specified ethernet device.
+ Offset and value specify which byte and its new value.
+ Because of the persistent nature of writing to the EEPROM, a
+ device-specific magic key must be specified to prevent the
+ accidental writing to the EEPROM.
+
+ ethtool -g ethx
+ Queries the specified ethernet device for rx/tx
+ ring parameter information.
+
+ ethtool -i eth#
+ Displays device driver information
+
+ ethtool -k eth#
+ Displays offload parameters information.
+
+ ethtool -K eth# [rx on|off] [tx on|off] [sg on|off] [tso on|off]
+ Changes offload parameters.
+ rx - RX checksum offload
+ tx - TX checksum offload
+ sg - scatter-gather
+ tso - TCP Segmentation Offload
+
+ ethtool -p eth# [N]
+ Initiates adapter-specific action intended to enable an
+ operator to easily identify the physical adapter by sight.
+ Typically this involves blinking one or more LEDs on the
+ specified ethernet port.
+
+ N - Length of time to perform phys-id, in seconds.
+
+ ethtool -S eth#
+ Displays adapter and driver statistics.
+
+ ethtool -t eth# [offline|online]
+ Executes adapter selftest on the specified ethernet device.
+ Possible test modes are:
+
+ offline (default) - performs full set of tests, possibly
+ interrupting normal adapter operation during the tests.
+ online - performs limited set of tests, not interrupting normal
+ adapter operation.
+
+11) Known Issues:
+-----------------
+i) TSO disabled in SUSE 9:
+ TSO is disabled by default in SuSE 9. It may be manually enabled
+ using the ethtool command.
+ # ethtool -K eth# tso on
+
+12) Common Problems:
+--------------------
+
+i) Symbolic link:
+ Before debugging any compilation related problems, ensure that the
+ following symbolic link/directory points to the correct kernel source
+ tree.
+ For 2.4, /usr/src/linux-2.4
+ For 2.6, /usr/src/linux-2.6
+
+ii) Version Mismatch:
+ One of the common problems encountered on trying to load the driver is
+ related to a version mismatch between current kernel and the kernel for
+ which the driver was built. Typical error message is as follows:
+
+ Using /lib/modules/2.x.y-SMP/kernel/drivers/net/vxge.o
+ /lib/modules/2.x.y-SMP/kernel/drivers/net/vxge.o: kernel-module
+ version mismatch /lib/modules/2.x.y-SMP/kernel/drivers/net/vxge.o
+ was compiled for kernel version 2.x.y while this kernel is version
+ 2.x.y-SMP.
+
+ To fix this problem, ensure the kernel is enabled for SMP by following
+ these steps:
+
+ - Go to the directory where kernel sources are located.
+ (e.g. /usr/src/linux-2.4.19.SuSE)
+
+ - Execute "make menuconfig". This will bring up the "Linux
+ Kernel Configuration" menu. Select "Processor type
+ and features". Ensure that "Symmetric multi-processing
+ support" is enabled.
+ Save this configuration and exit.
+
+ This will compile the kernel with SMP support.
+
+13) Available Downloads:
+------------------------
+
+ For latest available Neterion drivers or further support please
+ contact your network adapter provider or check the Neterion support
+ download site at
+ http://www.neterion.com/support/xframe_customers.html
+
+ This readme applies to the Neterion Linux driver available from our
+ website. Although the Neterion Linux drivers are included in the
+ mainline kernel and major Linux distributions (i.e. Red Hat, Suse, etc),
+ and are similar, each distribution accepts or rejects our driver changes
+ at their own discretion. Therefore, some features may be enabled or
+ disabled in different releases.
+
+===============================================================================
+ Neterion Inc. Proprietary
+ COPYRIGHT (c) 2002-2009 Neterion Inc, ALL RIGHTS RESERVED
+
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [net-2.6 PATCH 1/10] Neterion: New driver: Driver help file
2009-03-14 8:20 [net-2.6 PATCH 1/10] Neterion: New driver: Driver help file Ramkrishna Vepa
@ 2009-03-15 19:04 ` Ben Hutchings
0 siblings, 0 replies; 3+ messages in thread
From: Ben Hutchings @ 2009-03-15 19:04 UTC (permalink / raw)
To: ram.vepa; +Cc: Netdev, David Miller
On Sat, 2009-03-14 at 00:20 -0800, Ramkrishna Vepa wrote:
[...]
> +1) Introduction:
> +----------------
> +Linux Driver for Neterion 10 Gigabit Ethernet PCI Express I/O Virtualized Server Adapter
> +
> + * This driver supports all Neterion's X3100 10GbE adapters and 2.4.x and 2.6.x kernels.
Any references to earlier kernel versions should be removed.
> + * Supports several features such as jumbo frames, MSI-X, checksum offloads, TSO, LRO and so on.
> +(See below for complete list of features supported for both IPv4 and IPv6)
> +
> +2) Load/Unload Neterion driver:
> +------------------------------
...works just the same as for any other driver. Remove it.
> +3) Identifying the adapter/interface:
> +-------------------------------------
Same for most of this.
[...]
> +vii) napi
> + Enables/disables NAPI support.
> + Automatically disabled when intr_type is set to MSI-X on kernels below
> + 2.6.24.
> + Valid range: 0,1 (disabled, enabled respectively)
> + Default: 1
NAPI should be enabled all the time. There is no need to make it an
option.
[...]
> +xi) rx_steering_type
> + Specifies criteria for steering received packets.
> + Valid range: 0-4 (disabled, L4 port, RTH, priority and VLAN ID respectively)
> + Default: 2 (when system supports MSI-X and has more than 4 CPUs)
This should be controllable through ethtool ETHTOOL_{G,S}RXFH
operations.
[...]
> +xiv) ring_blocks:
> + Numbers of RxD blocks in the ring
> + Valid range: 1 - 128
> + Default : 2
What's an RxD block? Some fixed number of RX descriptors? I think this
should be controllable through ethtool ETHTOOL_{G,S}RINGPARAM.
> +xv) Boot time configuration
> + In order to load option(s) at boot time, add the option(s) to
> + /etc/modprobe.conf.
> + Example:
> + alias eth# vxge
> + options vxge rx_blocks=4 rx_steering_type=2
Just like any other module.
[...]
> +10) Ethtool Support:
> +--------------------
> +Ethtool is useful for driver configuration, diagnostics and displaying
> +statistical information. The latest version of Ethtool is available at
> +http://sourceforge.net/projects/gkernel/
[...]
No need to duplicate ethtool docs here.
> +11) Known Issues:
> +-----------------
> +i) TSO disabled in SUSE 9:
> + TSO is disabled by default in SuSE 9. It may be manually enabled
> + using the ethtool command.
> + # ethtool -K eth# tso on
Doesn't apply when using a current kernel (if that even works in SUSE
9).
> +12) Common Problems:
> +--------------------
These don't apply to in-tree modules.
[...]
> +13) Available Downloads:
> +------------------------
Not sure this belongs in-tree.
[...]
> +===============================================================================
> + Neterion Inc. Proprietary
> + COPYRIGHT (c) 2002-2009 Neterion Inc, ALL RIGHTS RESERVED
This notice _really_ doesn't belong in the kernel.
Ben.
--
Ben Hutchings, Senior Software Engineer, Solarflare Communications
Not speaking for my employer; that's the marketing department's job.
They asked us to note that Solarflare product names are trademarked.
^ permalink raw reply [flat|nested] 3+ messages in thread
* [net-2.6 PATCH 1/10] Neterion: New driver: Driver help file
@ 2009-03-25 8:12 Ramkrishna Vepa
0 siblings, 0 replies; 3+ messages in thread
From: Ramkrishna Vepa @ 2009-03-25 8:12 UTC (permalink / raw)
To: David Miller; +Cc: Netdev, Ramkrishna Vepa
- vxge driver help text file.
- Changes from previous submission -
- Incorporated following fixes based on comments from Ben Hutchings
Removed references to earlier kernel versions.
Removed sections that are similar for all drivers -
Load/Unload
Identifying the adapter/interface
Boot time configuration
Removed loadable parameter -
NAPI - Napi is always enabled.
rx_steering_type & ring_blocks - The driver default settings
work well in most if not all cases. Another patch to configure
these parameters with ethtool will be released in the future.
Removed ethtool support section - No need to duplicate ethtool docs here.
Removed Known Issue on SUSE 9 - Doesn't apply when using a current kernel.
Removed Common Problems section - These don't apply to in-tree modules.
Removed Available Downloads section - Not sure this belongs in-tree.
Removed Copyright information - This notice doesn't belong in the kernel.
Signed-off-by: Sivakumar Subramani <sivakumar.subramani@neterion.com>
Signed-off-by: Rastapur Santosh <santosh.rastapur@neterion.com>
Signed-off-by: Ramkrishna Vepa <ram.vepa@neterion.com>
---
diff -Nurp orig/Documentation/networking/vxge.txt patch_1/Documentation/networking/vxge.txt
--- orig/Documentation/networking/vxge.txt 1969-12-31 16:00:00.000000000 -0800
+++ patch_1/Documentation/networking/vxge.txt 2009-03-23 08:28:58.000000000 -0700
@@ -0,0 +1,226 @@
+Release notes for Neterion's (Formerly S2io) X3100 Linux Driver.
+
+contents
+--------
+
+1) Introduction
+2) Features supported
+3) Configurable driver parameters
+4) Performance Suggestions
+5) Transmit performance
+6) Receive performance
+7) Troubleshooting
+
+1) Introduction:
+----------------
+Linux Driver for Neterion 10 Gigabit Ethernet PCI Express I/O Virtualized Server Adapter
+
+ * This driver supports all Neterion's X3100 10GbE adapters.
+ * Supports several features such as jumbo frames, MSI-X, checksum offloads, TSO, GRO and so on.
+(See below for complete list of features supported for both IPv4 and IPv6)
+
+2) Features supported:
+----------------------
+
+i) I/O Virtualization Offloads:
+ - Single function mode
+ - Multi function mode
+
+ii) PCI-SIG's I/O Virtualization:
+ - Single Root mode: v1.0
+ - Multi-Root mode: v1.0
+
+iii) Jumbo frames:
+ X3100 Series supports MTU up to 9600 bytes, modifiable using
+ ifconfig command.
+
+iv) Offloads supported:
+ Checksum offload (TCP/UDP/IP) on transmit and receive paths
+ TCP Segmentation Offload (TSO) on transmit path
+ Generic Receive Offload (GRO) on receive path
+
+v) MSI-X:
+ Can be enabled on platforms which support it, resulting in noticeable
+ performance improvement (up to 7% on certain platforms).
+
+vi) NAPI:
+ For better Rx interrupt moderation.
+
+vii) RTH (Receive Traffic Hash):
+ Receive side steering for better scaling.
+
+viii) Statistics:
+ Comprehensive MAC-level and software statistics displayed using
+ "ethtool -S" option.
+
+ix) Multi-Vpaths:
+ Up to 17 hardware based transmit and receive data channels, with
+ multiple steering options.
+
+
+3) Configurable driver parameters:
+----------------------------------
+
+i) intr_type
+ Specifies interrupt type.
+ Valid range: 0, 2 (INTA, MSI-X respectively)
+ Default: 2
+
+ii) gro
+ Enables/disables Generic Receive Offload (GRO).
+ Valid range: 0,1 (disabled, enabled respectively)
+ Default: 1
+
+iii) max_config_dev
+ Specifies maximum device functions to be enabled.
+ Valid range: 1-8
+
+iv) max_config_port:
+ Specifies number of ports to be enabled.
+ Valid range: 0,1
+ Default: 1
+
+v) max_config_vpath:
+ Specifies maximum VPATH(s) configured for each device function.
+ Valid range: 1-17
+
+vi) rpa_strip_vlan_tag
+ Enables/disables vlan tag stripping from all received tagged frames that
+ are not replicated at the internal L2 switch.
+ Valid range: 0,1 (disabled, enabled respectively)
+ Default: 1
+
+vii) tx_steering_type
+ Specifies criteria for steering transmitted packets.
+ Valid range: 0-4 (disabled, priority, VLAN ID, multiq and L4 port respectively)
+ Default: 4
+
+The following parameters are used collectively to enable the receive
+traffic steering capability of the driver.
+
+x) addr_learn_en
+ Enable Receive Traffic Steering using MAC destination address.
+ Valid range: 0,1 (disabled, enabled respectively)
+ Default: 0
+
+xi) ring_indicate_max_pkts
+ Sets maximum number of received frames to be processed within single interrupt.
+ Valid range: 1 - 65536
+ Default : 128
+
+xii) fifo_indicate_max_pkts:
+ Sets maximum number of transmit frames to be processed within single interrupt.
+ Valid range: 1 - 65536
+ Default : 32
+
+4) Performance Suggestions:
+---------------------------
+
+- Set MTU to maximum - 9000 for switch setup, 9600 for back-to-back.
+For MTU 1500:
+-------------
+### IPV4 specific settings
+# turns TCP timestamp support off, default 1, reduces CPU use
+$sysctl -w net.ipv4.tcp_timestamps = "0"
+# turn SACK support off, default on
+$sysctl -w net.ipv4.tcp_sack="0"
+# on systems with a VERY fast bus -> memory interface this is the big gainer
+# sets min/default/max TCP read buffer, default 4096 87380 174760
+$sysctl -w net.ipv4.tcp_rmem="210000 210000 210000"
+# sets min/pressure/max TCP write buffer, default 4096 16384 131072
+$sysctl -w net.ipv4.tcp_wmem="210000 210000 210000"
+# sets min/pressure/max TCP buffer space, default 31744 32256 32768
+$sysctl -w net.ipv4.tcp_mem="210000 210000 210000"
+
+### CORE settings (mostly for socket and UDP effect)
+# maximum receive socket buffer size, default 131071
+$sysctl -w net.core.rmem_max="524287"
+# maximum send socket buffer size, default 131071
+$sysctl -w net.core.wmem_max="524287"
+# default receive socket buffer size, default 65535
+$sysctl -w net.core.rmem_default="524287"
+# default send socket buffer size, default 65535
+$sysctl -w net.core.wmem_default="524287"
+# maximum amount of option memory buffers, default 10240
+$sysctl -w net.core.optmem_max="524287"
+# number of unprocessed input packets before kernel starts dropping them, default 300
+$sysctl -w net.core.netdev_max_backlog="300000"
+
+For MTU 9000:
+-------------
+### IPV4 specific settings
+# turns TCP timestamp support off, default 1, reduces CPU use
+$sysctl -w net.ipv4.tcp_timestamps = "0"
+# turn SACK support off, default on
+$sysctl -w net.ipv4.tcp_sack="0"
+# on systems with a VERY fast bus -> memory interface this is the big gainer
+# sets min/default/max TCP read buffer, default 4096 87380 174760
+$sysctl -w net.ipv4.tcp_rmem="10000000 10000000 10000000"
+# sets min/pressure/max TCP write buffer, default 4096 16384 131072
+$sysctl -w net.ipv4.tcp_wmem="10000000 10000000 10000000"
+# sets min/pressure/max TCP buffer space, default 31744 32256 32768
+$sysctl -w net.ipv4.tcp_mem="10000000 10000000 10000000"
+
+### CORE settings (mostly for socket and UDP effect)
+# maximum receive socket buffer size, default 131071
+$sysctl -w net.core.rmem_max="524287"
+# maximum send socket buffer size, default 131071
+$sysctl -w net.core.wmem_max="524287"
+# default receive socket buffer size, default 65535
+$sysctl -w net.core.rmem_default="524287"
+# default send socket buffer size, default 65535
+$sysctl -w net.core.wmem_default="524287"
+# maximum amount of option memory buffers, default 10240
+$sysctl -w net.core.optmem_max="524287"
+# number of unprocessed input packets before kernel starts dropping them, default 300
+$sysctl -w net.core.netdev_max_backlog="300000"
+
+5) Transmit performance:
+------------------------
+
+- Ensure Transmit Checksum offload and TSO are enabled.
+ Use ethtool to verify/set these parameters.
+
+ # ethtool -k eth#
+ Offload parameters for eth0:
+ rx-checksumming: on
+ tx-checksumming: on
+ scatter-gather: on
+ tcp segmentation offload: off
+
+- Turn on Transmit Checksum offload and TSO:
+ # ethtool -K eth# tx on
+ # ethtool -K eth# tso on (for 2.6 kernels)
+
+
+6) Receive performance:
+-----------------------
+
+- Ensure Receive Checksum offload is enabled. Use ethtool to verify/set.
+ # ethtool -k eth#
+ # ethtool -K eth# rx on
+
+- If MTU is set to 1500, receive performance can be improved by increasing
+ the default TCP window size and enabling GRO (see "Configurable driver
+ parameters" section).
+ # sysctl -p sysctl_neterion_1500.conf
+
+- Enable NAPI to bring down CPU utilization.
+
+- If CPU bottleneck is being hit (close to 0% idle), you can play around with
+ utilization parameters by using tune_driver script. This may help bring
+ down CPU utilization and improve throughput. See "Driver tuning" section.
+
+
+7) Troubleshooting:
+-------------------
+
+For X3100 adapter assigned eth2
+
+Statistics Dump:
+ # ethtool -S eth2
+
+Register Dump:
+ # ethtool -d eth2
+
+===============================================================================
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2009-03-25 7:27 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-03-14 8:20 [net-2.6 PATCH 1/10] Neterion: New driver: Driver help file Ramkrishna Vepa
2009-03-15 19:04 ` Ben Hutchings
-- strict thread matches above, loose matches on Subject: below --
2009-03-25 8:12 Ramkrishna Vepa
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).