s2io.txt 4.8 KB

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