#
285830 |
|
23-Jul-2015 |
gjb |
- Copy stable/10@285827 to releng/10.2 in preparation for 10.2-RC1 builds. - Update newvers.sh to reflect RC1. - Update __FreeBSD_version to reflect 10.2. - Update default pkg(8) configuration to use the quarterly branch.[1]
Discussed with: re, portmgr [1] Approved by: re (implicit) Sponsored by: The FreeBSD Foundation |
#
283620 |
|
27-May-2015 |
erj |
MFC ixgbe commits for 10.2:
- r280182 - Split the driver into independent pf/vf loadables - r280197 - Resolve build issues - r280204 - Fix multiple same-name devclasses - r280228 - Fix i386 LINT build issues / remove unused variable - r280252 - Fix building ixgbe with gcc - r280962 - Make changes to busdma code similar to r257541 - r281772 & r281773 - Remove unused variable - partial r282280 - stats counter update (ix-only) - r282289 - Add X550 support - r282290 - Add X550 makefile updates - r282293 - Add ixgbe_x550.c to conf/files - r282299 - Fix gcc compile (extraneous extern declaration)
Finally, add ix_txrx.c to conf/files because it's required for compile in stable/10.
Approved by: jfv (mentor)
|
#
281954 |
|
24-Apr-2015 |
ngie |
MFC r279393:
Pad RX copy alignment calculation to avoid illegal memory accesses
The optimization made in r239940 is valid for struct mbuf's current structure and size in FreeBSD, but hardcodes assumptions about sizes of struct mbuf, which are unfortunately broken if additional data is added to the beginning of struct mbuf
X-MFC note (discussed with rwatson):
This change requires the MPKTHSIZE definition, which is only available after head@r277203 and will not be MFCed as it breaks mbuf(9) KPI.
A direct commit to stable/10 and merges to other branches to add the necessary definitions to work with the code as-is will be done to facilitate this MFC
PR: 194314 Approved/Reviewed by: erj, jfv Sponsored by: EMC / Isilon Storage Division
|
#
272966 |
|
11-Oct-2014 |
adrian |
MFC r271648 - The error bits are not valid with EOP=0; so intermediary fragments should not be discarded.
Submitted by: Marc De La Gueronniere <mdelagueronniere@verisign.com> Sponsored by: Verisign, Inc.
|
#
256281 |
|
10-Oct-2013 |
gjb |
Copy head (r256279) to stable/10 as part of the 10.0-RELEASE cycle.
Approved by: re (implicit) Sponsored by: The FreeBSD Foundation
|
#
251964 |
|
18-Jun-2013 |
jfv |
Add quad port probe support, this gives the admin proper information about the slot (which should be a PCIE Gen 3 slot for this adapter) by looking back thru the PCI parent devices to the slot device.
The fix above also corrects the bandwidth display to GT/s rather than the incorrect Gb/s
Next, allow the use of ALTQ if you select the compile option IXGBE_LEGACY_TX.
Allow the use of 'unsupported' optic modules by a compile option as well.
Add a phy reset capability into the stop code, this is so a static configured driver will still behave properly when taken down (not being able to unload it).
This revision synchronizes the shared code with Intel internal current code, and note that it now includes DCB supporting code, this was necessitated by some internal changes with the code, but it also will provide the opportunity to develop this feature in the core driver down the road.
I have edited the README to get rid of some of the worse anachronisms in it as well, its by no means as robust as I might wish at this point however.
Oh, I also have included some conditional stuff in the code so it will be compatible in both the 9.X and 10 environments.
Performance has been a focus in recent changes and I believe this revision driver will perform very well in most workloads.
MFC after: 2 weeks
|
#
244514 |
|
20-Dec-2012 |
luigi |
rename the 'tag' and 'map' fields used the rx ring to their previous names, 'ptag' and 'pmap' -- p stands for packet.
This change reduces the difference between the code in stable/9 and head, and also helps using the same ixgbe_netmap.h on both branches.
Approved by: Jack Vogel
|
#
243736 |
|
01-Dec-2012 |
jfv |
Patch #11 - The final patch: this one greatly improves the TX hot path by getting rid of index calculations and simply managing pointers. Much of the creative code is due to my coworker here at Intel, Alex Duyck, thanks Alex!
Also, this whole series of patches was given the critical eye of Gleb Smirnoff and is all the better for it, thanks Gleb!
|
#
243729 |
|
30-Nov-2012 |
jfv |
Patch #8 Performance changes - this one improves locality, moving some counters and data to the ring struct from the adapter struct, also compressing some data in the move.
|
#
243728 |
|
30-Nov-2012 |
jfv |
Patch #7 This is primarily about processing limit control. - add a limit for both RX and TX, change the default to 256 - change the sysctl usage to be common, and now to be called during init for each ring. - the TX limit is not yet used, but the changes in the last patch in this series uses the value. - the motivation behind these changes is to improve data locality in the final code. - rxeof interface changes since it now gets limit from the ring struct
|
#
243725 |
|
30-Nov-2012 |
jfv |
Patch #6 Whitespace cleanup, and removal of some very old defines (at Gleb's request). Also, change the defines around the old transmit code to IXGBE_LEGACY_TX, I do this to make it possible to define this regardless of the OS level (it is not defined by default). There are also a couple changed comments for clarity.
|
#
243724 |
|
30-Nov-2012 |
jfv |
Patch #5 Cleanup unused IEEE1588 code fragments, the day may come when this feature gets implemented, but its not here yet and I see no reason to leave this laying around.
|
#
243718 |
|
30-Nov-2012 |
jfv |
Patch #3 - Add a new ioctl to access SFP+ module diagnostic data via the I2C routines in shared code.
|
#
243716 |
|
30-Nov-2012 |
jfv |
Patch #2 - remove OACTIVE and DEPLETED notions from the multiqueue code, this functionality has proven to be more trouble than it was worth. Thanks to Gleb for a second critical look over my code and help in the patches!
|
#
243714 |
|
30-Nov-2012 |
jfv |
First of a series of 11 patches leading to new ixgbe version 2.5.0 This removes the header split and supporting code from the driver.
|
#
240968 |
|
26-Sep-2012 |
jhb |
Merge similar fixes from 223198 from igb to ixgbe: - Use a dedicated task to handle deferred transmits from the if_transmit method instead of reusing the existing per-queue interrupt task. Reusing the per-queue interrupt task could result in both an interrupt thread and the taskqueue thread trying to handle received packets on a single queue resulting in out-of-order packet processing and lock contention. - Don't define ixgbe_start() at all where if_transmit is used.
Tested by: Vijay Singh Reviewed by: jfv MFC after: 2 weeks
|
#
239940 |
|
31-Aug-2012 |
scottl |
Heavily optimize the case of small RX packets of 160 bytes or less. For this case, allocate a plain mbuf and copy the frame into it, then send the copy up the stack, leaving the original mbuf+cluster in place in the receive ring for immediate re-use. This saves a trip through 2 of the 3 zones of the compound mbuf allocator, a trip through busdma, and a trip through the 1 of the 3 mbuf destructors. For our load at Netflix, this can lower CPU consumption by as much as 20%. The copy algorithm is based on investigative work from Luigi Rizzo earlier in the year.
Reviewed by: jfv Obtained from: Netflix
|
#
234620 |
|
23-Apr-2012 |
bz |
If we pass down 64k - L2 hdr size + 1 to 64K L3+ data adding an ether header will make the data go over the 64k limits announced to busdma as maxsize and the transaction will fail.
With TSO this can result in a TCP regression due to the lost packet.
According to the data sheets ixgbe(4) 82598 and 82599 can handle up to 256k so increase the maximum.
Reported by: Jon Kåre Hellan, UNINETT (jon.kare.hellan uninett.no) Tested by: Jon Kåre Hellan, UNINETT (jon.kare.hellan uninett.no) MFC after: 1 week
|
#
230775 |
|
30-Jan-2012 |
jfv |
New hardware support: Intel X540 adapter support added. Some shared code reorganization along with the new adapter. Sync changes to OACTIVE in igb into this driver. Misc small fixes.
|
#
221189 |
|
28-Apr-2011 |
jfv |
Add a #define for driver portability to older OS
|
#
221041 |
|
25-Apr-2011 |
jfv |
- Add the RX refresh changes from igb to ixgbe - Also a couple minor tweaks to the TX code from the same source. - Add the INET ioctl code which has been missing from this driver, and which caused IP aliases to reset the interface. - Last, some minor logic changes that just reflect upcoming hardware support, but have no other functional effect now.
MFC after a week
|
#
217593 |
|
19-Jan-2011 |
jfv |
Update driver to version 2.3.8: CRITICAL FIX - with stats changes the older 82598 will panic and trash the stack on driver load, FCOE registers ONLY exist in 82599 and must not be read otherwise.
kern/153951 - to correct incorrect media type on adapters with pluggable modules I have eliminated the old static table in favor of a new dynamic shared code routine. This also has the benefit of detecting changes when a different module is inserted.
Performance/enhancement to the Flow Director code from my linux coworker (the developer of the code).
Fixes from Michael Tuexen - a data corruption problem on the 82599 (CRITICAL), fix so the buf size correctly adjusts as the cluster changes, and max descriptors are set properly. Also added 16K clusters for those REALLY big jumbos :)
In the RX path, the RX LOCK was not being released, and this causes LOR problems. Add the code that igb already has.
Sync with in house shared code, this was necessary for the Flow Director fix.
MFC in 2 days
|
#
217129 |
|
07-Jan-2011 |
jfv |
Fix to kern/150247 - make ixgbe buildable for 7.x
|
#
215914 |
|
27-Nov-2010 |
jfv |
and the header...
|
#
215911 |
|
26-Nov-2010 |
jfv |
Update ixgbe driver to verion 2.3.6 - This adds a VM SRIOV interface, ixv, it is however transparent to the user, it links with the ixgbe.ko, but when ixgbe is loaded in a virtualized guest with SRIOV configured this will be detected. - Sync shared code to latest - Many bug fixes and improvements, thanks to everyone who has been using the driver and reporting issues.
|
#
211913 |
|
28-Aug-2010 |
yongari |
Do not allocate multicast array memory in multicast filter configuration function. For failed memory allocations, em(4)/lem(4) called panic(9) which is not acceptable on production box. igb(4)/ixgb(4)/ix(4) allocated the required memory in stack which consumed 768 bytes of stack memory which looks too big.
To address these issues, allocate multicast array memory in device attach time and make multicast configuration success under any conditions. This change also removes the excessive use of memory in stack.
Reviewed by: jfv
|
#
209622 |
|
01-Jul-2010 |
kevlo |
Fix build
|
#
209609 |
|
30-Jun-2010 |
jfv |
Left out header change in last delta - new member in adapter so that advertise changes can be done to one port without the other changing.
|
#
209607 |
|
30-Jun-2010 |
glebius |
Fix build.
|
#
208762 |
|
03-Jun-2010 |
jfv |
Fixes for panic experienced in test at Intel, when doing bidirectional stress traffic on 82598.
Also a couple bug fixes from Michael Tuexen, thank you!!
Add a workaround into the header so that 8 REL can use the driver (adds local copy of ALTQ fix).
MFC: in a few days
|
#
208282 |
|
19-May-2010 |
jfv |
A few changes: When not defining header split do not allocate mbufs, this can be a BIG savings in the mbuf memory pool.
Also keep seperate dma maps for the header and payload pieces when doing header split. The basis of this code was a patch done a while ago by yongari, thank you :)
A number of white space changes.
MFC: in a few days
|
#
205904 |
|
30-Mar-2010 |
jfv |
Thanks to Michael Tuexen for adding SCTP support for 82599, also for finding a one character bug that kept TSO from working.
Sometimes with direct attach cables a failure can occur in init, the old method of calling detach was broken, there is no way to return an error to the system from init, so I have changed it to return failure thru the ioctl.
And, have fixed the ALTQ code changes of Max Laier, sorry Max :)
|
#
205720 |
|
27-Mar-2010 |
jfv |
Update the driver to Intel version 2.1.6 - add some new hardware support for 82599 - Big change to interrupt architecture, it now uses a queue which contains an RX/TX pair as the recipient of the interrupt. This will reduce overall system interrupts/msix usage. - Improved RX mbuf handling: the old get_buf routine is no longer synchronized with rxeof, this allows the elimination of packet discards due to mbuf allocation failure. - Much simplified and improved AIM code, it now happens in the queue interrupt context and takes into account both the traffic on the RX AND TX side. - variety of small tweaks, like ring size, that have been seen as performance improvements. - Thanks to those that provided feedback or suggested changes, I hope I've caught all of them.
|
#
200239 |
|
07-Dec-2009 |
jfv |
Update driver to Intel version 2.0.7:
This adds new feature support for the 82599, a hardware assist to LRO, doing this required a large revamp to the RX cleanup code because the descriptor ring may not be processed out of order, this necessitated the elimination of global pointers.
Additionally, the RX routine now does not refresh mbufs on every descriptor, rather it will do a range, and then update the hardware pointer at that time. These are performance oriented changes.
The TX side now has a cleaner simpler watchdog algorithm as well, in TX cleanup a read of ticks is stored, that can then be compared in local_timer to determine if there is a hang.
Various other cleanups along the way, thanks to all who have provided input and testing.
|
#
194875 |
|
24-Jun-2009 |
jfv |
Update for the Intel 10G driver, this adds support for newest hardware, adds multiqueue tx interface, infrastructure cleanup to allow up to 32 MSIX vectors on newer Nehalem systems. Bug fixes, etc.
|
#
190873 |
|
10-Apr-2009 |
jfv |
Update the ixgbe driver to 1.7.4, this includes support for the new 82599 adapter family, adds header split, and many small fixes. The driver should now be added to the GENERIC kernel.
MFC after: 2 weeks
|
#
185352 |
|
26-Nov-2008 |
jfv |
Updated ixgbe driver - version 1.6.2
-This version has header split, and as a result a number of aspects of the code have been improved/simplified. - Interrupt handling refined for performance - Many small bugs fixed along the way
MFC after: ASAP - in time for 7.1
|
#
181003 |
|
30-Jul-2008 |
jfv |
This updates the ixgbe driver to Intel internal version 1.4.7 Shared code changes, core driver fixes, vlan event/filter support
Also Kip Macy's fix to allow any number of queues, thanks Kip!
|
#
179740 |
|
11-Jun-2008 |
jfv |
Change include to reflect tcp_lro.h move.
|
#
179055 |
|
16-May-2008 |
jfv |
This is driver version 1.4.4 of the Intel ixgbe driver. -It has new hardware support -It uses a new method of TX cleanup called Head Write Back -It includes the provisional generic TCP LRO feature contributed by Myricom and made general purpose by me. This should move into the stack upon approval but for this driver drop its in here. -Also bug fixes and etc...
MFC in a week if no serious issues arise.
|
#
172043 |
|
04-Sep-2007 |
jfv |
This is an update to the new Intel 10G 82598 driver. The first drop was Beta, this code is expected to be the release version. Note that this driver code will build in either 6.2 or 7. If you use the code in 6.2 you will not get TSO or MSI/X support but it will function in a legacy mode.
Approved by: re
|
#
171384 |
|
11-Jul-2007 |
jfv |
Add the actual source too :)
Approved by: re
|