Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/dev/pci/ixgbe Sync ixg(4) up to FreeBSD r279805 (or r280...



details:   https://anonhg.NetBSD.org/src/rev/a81111663ed6
branches:  trunk
changeset: 339706:a81111663ed6
user:      msaitoh <msaitoh%NetBSD.org@localhost>
date:      Wed Aug 05 04:08:44 2015 +0000

description:
Sync ixg(4) up to FreeBSD r279805 (or r280181) which include some bugfixes.
TODO:
 - Merge r280182 and newer. It's required to support X55x.
 - MSI/MSI-X support.

diffstat:

 sys/dev/pci/ixgbe/README         |  260 ++++++-----
 sys/dev/pci/ixgbe/ixgbe.c        |  852 +++++++++++++++++++++++++++-----------
 sys/dev/pci/ixgbe/ixgbe.h        |   17 +-
 sys/dev/pci/ixgbe/ixgbe_82598.c  |   36 +-
 sys/dev/pci/ixgbe/ixgbe_82599.c  |  108 ++++-
 sys/dev/pci/ixgbe/ixgbe_api.c    |   30 +-
 sys/dev/pci/ixgbe/ixgbe_api.h    |    6 +-
 sys/dev/pci/ixgbe/ixgbe_common.c |  372 ++++++++++++----
 sys/dev/pci/ixgbe/ixgbe_common.h |   10 +-
 sys/dev/pci/ixgbe/ixgbe_osdep.h  |   11 +-
 sys/dev/pci/ixgbe/ixgbe_phy.c    |  388 ++++++++++-------
 sys/dev/pci/ixgbe/ixgbe_phy.h    |    8 +-
 sys/dev/pci/ixgbe/ixgbe_type.h   |  103 ++++-
 sys/dev/pci/ixgbe/ixgbe_vf.c     |   53 +-
 sys/dev/pci/ixgbe/ixgbe_x540.c   |   87 ++-
 sys/dev/pci/ixgbe/ixgbe_x540.h   |    4 +-
 sys/dev/pci/ixgbe/ixv.c          |   42 +-
 sys/dev/pci/ixgbe/ixv.h          |    6 +-
 18 files changed, 1618 insertions(+), 775 deletions(-)

diffs (truncated from 4446 to 300 lines):

diff -r df0ebd06ed50 -r a81111663ed6 sys/dev/pci/ixgbe/README
--- a/sys/dev/pci/ixgbe/README  Wed Aug 05 03:42:11 2015 +0000
+++ b/sys/dev/pci/ixgbe/README  Wed Aug 05 04:08:44 2015 +0000
@@ -1,9 +1,8 @@
-FreeBSD Driver for 10 Gigabit PCI Express Server Adapters
-=============================================
-/*$FreeBSD: src/sys/dev/ixgbe/README,v 1.2 2009/04/10 00:22:48 jfv Exp $*/
-/*$NetBSD: README,v 1.1 2011/08/12 21:55:28 dyoung Exp $*/
+FreeBSD Driver for Intel(R) Ethernet 10 Gigabit PCI Express Server Adapters
+============================================================================
+/*$FreeBSD: head/sys/dev/ixgbe/README 251964 2013-06-18 21:28:19Z jfv $*/
 
-May 14, 2008
+Jun 18, 2013
 
 
 Contents
@@ -12,15 +11,15 @@
 - Overview
 - Supported Adapters
 - Building and Installation
-- Additional Configurations
+- Additional Configurations and Tuning
 - Known Limitations
 
 
 Overview
 ========
 
-This file describes the FreeBSD* driver for the 10 Gigabit PCIE Family of 
-Adapters.  Drivers has been developed for use with FreeBSD 7 or later.
+This file describes the FreeBSD* driver for the
+Intel(R) Ethernet 10 Gigabit Family of Adapters.
 
 For questions related to hardware requirements, refer to the documentation
 supplied with your Intel 10GbE adapter.  All hardware requirements listed
@@ -30,100 +29,103 @@
 Supported Adapters
 ==================
 
-The following Intel network adapters are compatible with the drivers in this 
-release:
+The driver in this release is compatible with 82598 and 82599-based Intel 
+Network Connections.
+              
+SFP+ Devices with Pluggable Optics
+----------------------------------
+
+82599-BASED ADAPTERS  
 
-Controller  Adapter Name                      Physical Layer
-----------  ------------                      --------------
-82598EB     Intel(R) 10 Gigabit XF SR/AF      10G Base -LR (850 nm optical fiber) 
-            Dual Port Server Adapter          10G Base -SR (1310 nm optical fiber) 
-82598EB     Intel(R) 10 Gigabit XF SR/LR 
-            Server Adapter
-            Intel(R) 82598EB 10 Gigabit AF 
-            Network Connection
-            Intel(R) 82598EB 10 Gigabit AT 
-            CX4 Network Connection
-              
+NOTE: If your 82599-based Intel(R) Ethernet Network Adapter came with Intel 
+optics, or is an Intel(R) Ethernet Server Adapter X520-2, then it only supports
+Intel optics and/or the direct attach cables listed below.
 
-Building and Installation
-=========================
-
-NOTE: You must have kernel sources installed in order to compile the driver
-      module.
+When 82599-based SFP+ devices are connected back to back, they should be set to
+the same Speed setting. Results may vary if you mix speed settings. 
+ 
+Supplier    Type                                             Part Numbers
 
-      In the instructions below, x.x.x is the driver version as indicated in
-      the name of the driver tar. 
+SR Modules                     
+Intel      DUAL RATE 1G/10G SFP+ SR (bailed)                FTLX8571D3BCV-IT   
+Intel      DUAL RATE 1G/10G SFP+ SR (bailed)                AFBR-703SDZ-IN2
+Intel      DUAL RATE 1G/10G SFP+ SR (bailed)                 AFBR-703SDDZ-IN1  
+LR Modules                     
+Intel      DUAL RATE 1G/10G SFP+ LR (bailed)                FTLX1471D3BCV-IT   
+Intel      DUAL RATE 1G/10G SFP+ LR (bailed)                AFCT-701SDZ-IN2    
+Intel       DUAL RATE 1G/10G SFP+ LR (bailed)                AFCT-701SDDZ-IN1
 
-1. Move the base driver tar file to the directory of your choice. For 
-   example, use /home/username/ixgbe or /usr/local/src/ixgbe.
+The following is a list of 3rd party SFP+ modules and direct attach cables that
+have received some testing. Not all modules are applicable to all devices.
 
-2. Untar/unzip the archive:
-     tar xfz ixgbe-x.x.x.tar.gz
+Supplier   Type                                              Part Numbers
 
-3. To install man page:
-     cd ixgbe-x.x.x
-     gzip -c ixgbe.4 > /usr/share/man/man4/ixgbee.4.gz
-
-4. To load the driver onto a running system:
-     cd ixgbe-x.x.x/src
-     make load
+Finisar    SFP+ SR bailed, 10g single rate                   FTLX8571D3BCL
+Avago      SFP+ SR bailed, 10g single rate                   AFBR-700SDZ
+Finisar    SFP+ LR bailed, 10g single rate                   FTLX8571D3BCV-IT
+               
+Finisar    DUAL RATE 1G/10G SFP+ SR (No Bail)               FTLX8571D3QCV-IT
+Avago     DUAL RATE 1G/10G SFP+ SR (No Bail)                AFBR-703SDZ-IN1    
+Finisar           DUAL RATE 1G/10G SFP+ LR (No Bail)                FTLX1471D3QCV-IT
+Avago     DUAL RATE 1G/10G SFP+ LR (No Bail)                AFCT-701SDZ-IN1
+Finistar   1000BASE-T SFP                                    FCLF8522P2BTL
+Avago      1000BASE-T SFP                                    ABCU-5710RZ
 
-5. To assign an IP address to the interface, enter the following:
-     ifconfig ix<interface_num> <IP_address>
-
-6. Verify that the interface works. Enter the following, where <IP_address>
-   is the IP address for another machine on the same subnet as the interface
-   that is being tested:
-     ping <IP_address>
+NOTE: As of driver version 2.5.13 it is possible to allow the operation
+of unsupported modules by setting the static variable 'allow_unsupported_sfp'
+to TRUE and rebuilding the driver. If problems occur please assure that they
+can be reproduced with fully supported optics first.
 
-7. If you want the driver to load automatically when the system is booted:
+82599-based adapters support all passive and active limiting direct attach 
+cables that comply with SFF-8431 v4.1 and SFF-8472 v10.4 specifications.
 
-     cd ixgbe-x.x.x/src
-     make
-     make install
-        
-    Edit /boot/loader.conf, and add the following line:
-     ixgbe_load="YES"
+Laser turns off for SFP+ when ifconfig down
+--------------------------------------------------------
+"ifconfig down" turns off the laser for 82599-based SFP+ fiber adapters.
+"ifconfig up" turns on the later.
 
-     OR
+82598-BASED ADAPTERS
 
-     compile the driver into the kernel (see item 8).
-
-
-   Edit /etc/rc.conf, and create the appropriate ifconfig_ixgbe<interface_num> 
-   entry:
+NOTES for 82598-Based Adapters: 
+- Intel(R) Ethernet Network Adapters that support removable optical modules 
+  only support their original module type (i.e., the Intel(R) 10 Gigabit SR 
+  Dual Port Express Module only supports SR optical modules). If you plug 
+  in a different type of module, the driver will not load.
+- Hot Swapping/hot plugging optical modules is not supported.  
+- Only single speed, 10 gigabit modules are supported.  
+- LAN on Motherboard (LOMs) may support DA, SR, or LR modules. Other module 
+  types are not supported. Please see your system documentation for details.  
 
-     ifconfig_ix<interface_num>="<ifconfig_settings>"
-
-     Example usage:
-
-     ifconfig_ix0="inet 192.168.10.1 netmask 255.255.255.0"
+The following is a list of 3rd party SFP+ modules and direct attach cables that have 
+received some testing. Not all modules are applicable to all devices.
 
-     NOTE: For assistance, see the ifconfig man page.
-
-8. If you want to compile the driver into the kernel, enter:
+Supplier   Type                                              Part Numbers
 
-     FreeBSD 7 or later:
-
-     cd ixgbe-x.x.x/src
+Finisar    SFP+ SR bailed, 10g single rate                   FTLX8571D3BCL
+Avago      SFP+ SR bailed, 10g single rate                   AFBR-700SDZ
+Finisar    SFP+ LR bailed, 10g single rate                   FTLX1471D3BCL
+       
+82598-based adapters support all passive direct attach cables that comply 
+with SFF-8431 v4.1 and SFF-8472 v10.4 specifications. Active direct attach 
+cables are not supported.
 
-     cp *.[ch] /usr/src/sys/dev/ixgbe
-   
-     cp Makefile.kernel /usr/src/sys/modules/ixgbe/Makefile
-
-     Edit the kernel configuration file (i.e., GENERIC or MYKERNEL) in 
-     /usr/src/sys/i386/conf (replace "i386" with the appropriate system 
-     architecture if necessary), and ensure the following line is present:
-
-    device ixgbe
-
-   Compile and install the kernel.  The system must be reboot for the kernel 
-   updates to take affect.  For additional information on compiling the kernel, 
-   consult the FreeBSD operating system documentation.
-
+Third party optic modules and cables referred to above are listed only for the 
+purpose of highlighting third party specifications and potential compatibility, 
+and are not recommendations or endorsements or sponsorship of any third party's
+product by Intel. Intel is not endorsing or promoting products made by any 
+third party and the third party reference is provided only to share information
+regarding certain optic modules and cables with the above specifications. There
+may be other manufacturers or suppliers, producing or supplying optic modules 
+and cables with similar or matching descriptions. Customers must use their own 
+discretion and diligence to purchase optic modules and cables from any third 
+party of their choice. Customer are solely responsible for assessing the 
+suitability of the product and/or devices and for the selection of the vendor 
+for purchasing any product. INTEL ASSUMES NO LIABILITY WHATSOEVER, AND INTEL
+DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY, RELATING TO SALE AND/OR USE OF 
+SUCH THIRD PARTY PRODUCTS OR SELECTION OF VENDOR BY CUSTOMERS.
 
 Configuration and Tuning
-=========================
+========================
 
 The driver supports Transmit/Receive Checksum Offload and Jumbo Frames on
 all 10 Gigabit adapters. 
@@ -144,7 +146,7 @@
   The Jumbo Frames MTU range for Intel Adapters is 1500 to 16114. The default
   MTU range is 1500. To modify the setting, enter the following:
 
-        ifconfig ix <interface_num> <hostname or IP address> mtu 9000
+        ifconfig ix<interface_num> <hostname or IP address> mtu 9000
 
   To confirm an interface's MTU value, use the ifconfig command. To confirm
   the MTU used between two specific devices, use:
@@ -201,6 +203,8 @@
   TSO
   ---
 
+  TSO is enabled by default.
+
   To disable:
 
          ifconfig <interface_num> -tso 
@@ -210,58 +214,92 @@
          ifconfig <interface_num> tso
 
   LRO
-  ___
+  ---
   
-   Large Receive Offload is available in version 1.4.4, it is on
-   by default. It can be toggled off and on by using:
-       sysctl dev.ix.X.enable_lro=[0,1]
+  Large Receive Offload is available in the driver; it is on by default. 
+  It can be disabled by using:
+         ifconfig <interface_num> -lro
+  To enable:
+         ifconfig <interface_num> lro
 
-   NOTE: when changing this feature you MUST be sure the interface
-   is reinitialized, it is easy to do this with ifconfig down/up.
-   The LRO code will ultimately move into the kernel stack code,
-   but for this first release it was included with the driver.
 
   Important system configuration changes:
   ---------------------------------------
 
-  When there is a choice run on a 64bit OS rather than 32, it makes
-  a significant difference in improvement.
-
-  The default scheduler SCHED_4BSD is not smart about SMP locality issues. 
-  Significant improvement can be achieved by switching to the ULE scheduler.
+  When there is a choice run on a 64bit OS rather than 32, it makes a 
+  significant difference in improvement.
+  
+  The interface can generate a high number of interrupts. To avoid running 
+  into the limit set by the kernel, adjust hw.intr_storm_threshold 
+  setting using sysctl:
+ 
+       sysctl hw.intr_storm_threshold=9000 (the default is 1000)
 
-  This is done by changing the entry in the config file from SCHED_4BSD to 
-  SCHED_ULE. Note that this is only advisable on FreeBSD 7, on 6.X there have
-  been stability problems with ULE.
+  For this change to take effect on boot, edit /etc/sysctl.conf and add the 
+  line:  
+       hw.intr_storm_threshold=9000
 
-  Change the file /etc/sysctl.conf, add the line:  
- 
-         hw.intr_storm_threshold: 8000 (the default is 1000)
+  If you still see Interrupt Storm detected messages, increase the limit to a
+  higher number, or the detection can be disabled by setting it to 0.
 
-  Best throughput results are seen with a large MTU; use 9000 if possible. 
-
-  The default number of descriptors is 256, increasing this to 1024 or even 
-  2048 may improve performance.
+  The default number of descriptors is 2048, increasing or descreasing
+  may improve performance in some workloads, but change carefully.
 
 
 Known Limitations
 =================
+
+For known hardware and troubleshooting issues, refer to the following website.
+
+    http://support.intel.com/support/go/network/adapter/home.htm



Home | Main Index | Thread Index | Old Index