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