cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

s2io.rst (5409B)


      1.. SPDX-License-Identifier: GPL-2.0
      2
      3=========================================================
      4Neterion's (Formerly S2io) Xframe I/II PCI-X 10GbE driver
      5=========================================================
      6
      7Release notes for Neterion's (Formerly S2io) Xframe I/II PCI-X 10GbE driver.
      8
      9.. Contents
     10  - 1.  Introduction
     11  - 2.  Identifying the adapter/interface
     12  - 3.  Features supported
     13  - 4.  Command line parameters
     14  - 5.  Performance suggestions
     15  - 6.  Available Downloads
     16
     17
     181. Introduction
     19===============
     20This Linux driver supports Neterion's Xframe I PCI-X 1.0 and
     21Xframe II PCI-X 2.0 adapters. It supports several features
     22such as jumbo frames, MSI/MSI-X, checksum offloads, TSO, UFO and so on.
     23See below for complete list of features.
     24
     25All features are supported for both IPv4 and IPv6.
     26
     272. Identifying the adapter/interface
     28====================================
     29
     30a. Insert the adapter(s) in your system.
     31b. Build and load driver::
     32
     33	# insmod s2io.ko
     34
     35c. View log messages::
     36
     37	# dmesg | tail -40
     38
     39You will see messages similar to::
     40
     41	eth3: Neterion Xframe I 10GbE adapter (rev 3), Version 2.0.9.1, Intr type INTA
     42	eth4: Neterion Xframe II 10GbE adapter (rev 2), Version 2.0.9.1, Intr type INTA
     43	eth4: Device is on 64 bit 133MHz PCIX(M1) bus
     44
     45The above messages identify the adapter type(Xframe I/II), adapter revision,
     46driver version, interface name(eth3, eth4), Interrupt type(INTA, MSI, MSI-X).
     47In case of Xframe II, the PCI/PCI-X bus width and frequency are displayed
     48as well.
     49
     50To associate an interface with a physical adapter use "ethtool -p <ethX>".
     51The corresponding adapter's LED will blink multiple times.
     52
     533. Features supported
     54=====================
     55a. Jumbo frames. Xframe I/II supports MTU up to 9600 bytes,
     56   modifiable using ip command.
     57
     58b. Offloads. Supports checksum offload(TCP/UDP/IP) on transmit
     59   and receive, TSO.
     60
     61c. Multi-buffer receive mode. Scattering of packet across multiple
     62   buffers. Currently driver supports 2-buffer mode which yields
     63   significant performance improvement on certain platforms(SGI Altix,
     64   IBM xSeries).
     65
     66d. MSI/MSI-X. Can be enabled on platforms which support this feature
     67   (IA64, Xeon) resulting in noticeable performance improvement(up to 7%
     68   on certain platforms).
     69
     70e. Statistics. Comprehensive MAC-level and software statistics displayed
     71   using "ethtool -S" option.
     72
     73f. Multi-FIFO/Ring. Supports up to 8 transmit queues and receive rings,
     74   with multiple steering options.
     75
     764. Command line parameters
     77==========================
     78
     79a. tx_fifo_num
     80	Number of transmit queues
     81
     82Valid range: 1-8
     83
     84Default: 1
     85
     86b. rx_ring_num
     87	Number of receive rings
     88
     89Valid range: 1-8
     90
     91Default: 1
     92
     93c. tx_fifo_len
     94	Size of each transmit queue
     95
     96Valid range: Total length of all queues should not exceed 8192
     97
     98Default: 4096
     99
    100d. rx_ring_sz
    101	Size of each receive ring(in 4K blocks)
    102
    103Valid range: Limited by memory on system
    104
    105Default: 30
    106
    107e. intr_type
    108	Specifies interrupt type. Possible values 0(INTA), 2(MSI-X)
    109
    110Valid values: 0, 2
    111
    112Default: 2
    113
    1145. Performance suggestions
    115==========================
    116
    117General:
    118
    119a. Set MTU to maximum(9000 for switch setup, 9600 in back-to-back configuration)
    120b. Set TCP windows size to optimal value.
    121
    122For instance, for MTU=1500 a value of 210K has been observed to result in
    123good performance::
    124
    125	# sysctl -w net.ipv4.tcp_rmem="210000 210000 210000"
    126	# sysctl -w net.ipv4.tcp_wmem="210000 210000 210000"
    127
    128For MTU=9000, TCP window size of 10 MB is recommended::
    129
    130	# sysctl -w net.ipv4.tcp_rmem="10000000 10000000 10000000"
    131	# sysctl -w net.ipv4.tcp_wmem="10000000 10000000 10000000"
    132
    133Transmit performance:
    134
    135a. By default, the driver respects BIOS settings for PCI bus parameters.
    136   However, you may want to experiment with PCI bus parameters
    137   max-split-transactions(MOST) and MMRBC (use setpci command).
    138
    139   A MOST value of 2 has been found optimal for Opterons and 3 for Itanium.
    140
    141   It could be different for your hardware.
    142
    143   Set MMRBC to 4K**.
    144
    145   For example you can set
    146
    147   For opteron::
    148
    149	#setpci -d 17d5:* 62=1d
    150
    151   For Itanium::
    152
    153	#setpci -d 17d5:* 62=3d
    154
    155   For detailed description of the PCI registers, please see Xframe User Guide.
    156
    157b. Ensure Transmit Checksum offload is enabled. Use ethtool to set/verify this
    158   parameter.
    159
    160c. Turn on TSO(using "ethtool -K")::
    161
    162	# ethtool -K <ethX> tso on
    163
    164Receive performance:
    165
    166a. By default, the driver respects BIOS settings for PCI bus parameters.
    167   However, you may want to set PCI latency timer to 248::
    168
    169	#setpci -d 17d5:* LATENCY_TIMER=f8
    170
    171   For detailed description of the PCI registers, please see Xframe User Guide.
    172
    173b. Use 2-buffer mode. This results in large performance boost on
    174   certain platforms(eg. SGI Altix, IBM xSeries).
    175
    176c. Ensure Receive Checksum offload is enabled. Use "ethtool -K ethX" command to
    177   set/verify this option.
    178
    179d. Enable NAPI feature(in kernel configuration Device Drivers ---> Network
    180   device support --->  Ethernet (10000 Mbit) ---> S2IO 10Gbe Xframe NIC) to
    181   bring down CPU utilization.
    182
    183.. note::
    184
    185   For AMD opteron platforms with 8131 chipset, MMRBC=1 and MOST=1 are
    186   recommended as safe parameters.
    187
    188For more information, please review the AMD8131 errata at
    189http://vip.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/
    19026310_AMD-8131_HyperTransport_PCI-X_Tunnel_Revision_Guide_rev_3_18.pdf
    191
    1926. Support
    193==========
    194
    195For further support please contact either your 10GbE Xframe NIC vendor (IBM,
    196HP, SGI etc.)