339884 |
29-Oct-2018 |
davidcs |
MFC r339366 Add support for Error Recovery
Submitted by:Vaishali.Kulkarni@cavium.com |
339882 |
29-Oct-2018 |
davidcs |
MFC r338734
Fixed isses: State check before enqueuing transmit task in bxe_link_attn() routine. State check before invoking bxe_nic_unload in bxe_shutdown().
Submitted by:Vaishali.Kulkarni@cavium.com |
337511 |
09-Aug-2018 |
davidcs |
MFC r336438
Fixes for the following issues: 1. Fix taskqueues drain/free to fix panic seen when interface is being bought down and in parallel asynchronous link events happening.
2. Fix bxe_ifmedia_status()
Submitted by:Vaishali.Kulkarni@cavium.com and Anand.Khoje@cavium.com |
335340 |
18-Jun-2018 |
dim |
Follow-up to r335289, which merged r334948 from head, to really fix the bxe build on i386. In the stable/10 branch, the rman functions still use u_long instead of uintmax_t (this was changed in r294883 and r297000), so these have to be printed using the l modifier instead.
Pointy hat to: me Noticed by: gjb |
335289 |
17-Jun-2018 |
dim |
MFC r334948:
Fix build of bxe with base gcc on i386
Casting from rman_res_t to a pointer results in "cast to pointer from integer of different size" warnings with base gcc on i386, so print these without casting. The kva field of struct bxe_bar is of type vm_offset_t, which can be 32 or 64 bit, so cast it to uintmax_t before printing.
Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D15733 |
333431 |
09-May-2018 |
davidcs |
MFC r333004 Fix Issue with adding MUltiCast Addresses. When multicast addresses are added/deleted, the delete the multicast addresses previously programmed in HW and reprogram the new set of multicast addresses.
Submitted by:Vaishali.Kulkarni@cavium.com |
321516 |
26-Jul-2017 |
ae |
MFC r321203: Add HPE FlexFabric 10Gb 4-port 536FLR-T device id to the bxe(4) driver. |
315882 |
24-Mar-2017 |
davidcs |
MFC r314365 1. state checks in bxe_tx_mq_start_locked() and bxe_tx_mq_start() to sync threads during interface down or detach. 2. add sysctl to set pause frame parameters 3. increase max segs for TSO packets to BXE_TSO_MAX_SEGMENTS (32) 4. add debug messages for PHY 5. HW LRO support restricted to FreeBSD versions 8.x and above.
Submitted by: Vaishali.Kulkarni@cavium.com |
307973 |
26-Oct-2016 |
davidcs |
MFC r307578 1. Use taskqueue_create() instead of taskqueue_create_fast() for both fastpath and slowpath taskqueues. 2. Service all transmits in taskqueue threads. 3. additional stats counters for keeping track of - bd availability - tx buf ring not emptied in the fp task queue. These are drained via timeout taskqueue. - tx attempts during link down. |
305615 |
08-Sep-2016 |
pfg |
MFC r303891, r303892: sys: replace comma with semicolon when pertinent.
Uses of commas instead of a semicolons can easily go undetected. The comma can serve as a statement separator but this shouldn't be abused when statements are meant to be standalone. |
299299 |
10-May-2016 |
davidcs |
MFC r298591
1. Removed -Wno-shift-negative-value from Makefile 2. Fixed warning its absence caused in bxe_elink.c |
299298 |
10-May-2016 |
davidcs |
MFC r298496
Remove Unused/Dead Code |
299297 |
10-May-2016 |
davidcs |
MFC r298294 1. modify fwdump (a.k.a grcdump) so that grcdump memory is allocated and freed on as needed basis. 2. grcdump can be taken at failure points by invoking bxe_grc_dump() when trigger_grcdump sysctl flag is set. When grcdump is taken grcdump_done sysctl flag is set. 3. grcdump_done can be monitored by the user to retrieve the grcdump
Submitted by: vaishali.kulkarni@qlogic.com |
298282 |
19-Apr-2016 |
davidcs |
MFC r297884 Add support for Flash Update
Submitted by:nrapendra.singh@qlogic.com;vaishali.kulkarni@qlogic.com;davidcs@freebsd.org |
298281 |
19-Apr-2016 |
davidcs |
MFC r297873 1. Process tx completions in bxe_periodic_callout_func() and restart transmissions if possible. 2. For SIOCSIFFLAGS call bxe_init_locked() only if !BXE_STATE_DISABLED 3. remove code not needed in bxe_init_internal_common()
Submitted by:vaishali.kulkarni@qlogic.com;venkata.bhavaraju@qlogic.com |
297622 |
06-Apr-2016 |
davidcs |
MFC r297155 Modifications to achieve a common source base from FreeBSD7.x thru 10.x |
296876 |
14-Mar-2016 |
davidcs |
MFC r296579 Fix code so that buf_ring allocation for Tx Queues and their mutexes is done during during bxe_attach() and freed during bxe_detach() |
296580 |
09-Mar-2016 |
davidcs |
MFC r296071 Upgrade the firmware carried in driver and loaded during hardware initialization (a.k.a STORM firmware) to version 7.13.1 (latest version) |
296069 |
25-Feb-2016 |
davidcs |
MFC r295830 Remove dead code. Code Cleanup. Improve clarity in debug messages
Approved by:re (marius) |
296061 |
25-Feb-2016 |
davidcs |
MFC r295823
Modified the use of bxe_grc_dump() function so that it can be invoked directly at any potential error path, where a fwdump is needed. The fwdump (a.k.a grcdump) is stored in a driver buffer. The sysctl grcdump_done indicates if a fwdump was taken and waiting to be retrieved. The sysctl trigger_grcdump can be used to manually trigger a fwdump.
Approved by:re (marius) |
293788 |
12-Jan-2016 |
davidcs |
MFC r292639 Add support for firmware dump (a.k.a grcdump) |
293787 |
12-Jan-2016 |
davidcs |
MFC r292638 Check for packet_length is greater than 60 bytes as well as packet_length is greater than len_on_bd, before invoking the routine to handle jumbo over SGL (bxe_service_rxsgl()). Add counters for number of jumbo_over_SGL packets (rx_bxe_service_rxsgl) and erroneous jumbo_over_SGL packets (rx_erroneous_jumbo_sge_pkts)
Fix formatting in bxe_sysctl_state() |
293786 |
12-Jan-2016 |
davidcs |
MFC r289199 Add support for reading device temperature |
288135 |
22-Sep-2015 |
dim |
MFC r286733:
Avoid left-shifting negative signed values in bxe(4).
Reviewed by: davidcs |
286297 |
05-Aug-2015 |
davidcs |
MFC r285973 - Avoid lock contention in the if_transmit callback by using trylock and enqueueing the frames when it fails. This way there is some latency removed from the transmitting path. - If IFF_DRV_OACTIVE is set (and also if IFF_DRV_RUNNING is not) just enqueue the desired frames and return successful transmit. This way we avoid to return errors on transmit side and resulting in possible out-of-order frames. Please note that IFF_DRV_OACTIVE is set everytime we get the threshold ring hit, so this can be happening quite often.
Submitted by: Attilio.Rao@isilon.com |
284966 |
30-Jun-2015 |
davidcs |
MFC r284739 tx_mtx should be grabbed before calling buf_ring_dequeue_sc()
Submitted by:Attilio.Rao@isilon.com |
284963 |
30-Jun-2015 |
davidcs |
MFC r284470 In bxe_init_mcast_macs_list(): mc_mac->mac needs to point to the multicast mac address In bxe_set_mc_list(): added missing BXE_MCAST_UNLOCK() In __ecore_vlan_mac_h_exec_pending(): need to check for ECORE_PENDING
Submitted by: gary.zambrano@qlogic.com |
284962 |
30-Jun-2015 |
davidcs |
MFC r284335
PHY LOCK acquires the hardware lock via bxe_acquire_phy_lock() and releases it via bxe_release_phy_lock(). It was simply acquiring a mutex earlier which can cause the PHY to use bogus values. Fixes intermittent link failures.
bxe_ioctl() completes all functions within its context as opposed to a taskqueue earlier.
bxe_handle_rx_mode_tq() no longer required. bxe_set_rx_mode() handles the functionality within its context
Submitted by: gary.zambrano@qlogic.com |
283755 |
29-May-2015 |
davidcs |
MFC r283274
Submitted by: gary.zambrano@qlogic.com Approved by:davidcs@freebsd.org |
283752 |
29-May-2015 |
davidcs |
MFC r283269
Submitted by:gary.zambrano@qlogic.com Approved by:davidcs@freebsd.org |
281955 |
24-Apr-2015 |
hiren |
MFC r275358 r275483 r276982 - Removing M_FLOWID by hps@
r275358: Start process of removing the use of the deprecated "M_FLOWID" flag from the FreeBSD network code. The flag is still kept around in the "sys/mbuf.h" header file, but does no longer have any users. Instead the "m_pkthdr.rsstype" field in the mbuf structure is now used to decide the meaning of the "m_pkthdr.flowid" field. To modify the "m_pkthdr.rsstype" field please use the existing "M_HASHTYPE_XXX" macros as defined in the "sys/mbuf.h" header file.
This patch introduces new behaviour in the transmit direction. Previously network drivers checked if "M_FLOWID" was set in "m_flags" before using the "m_pkthdr.flowid" field. This check has now now been replaced by checking if "M_HASHTYPE_GET(m)" is different from "M_HASHTYPE_NONE". In the future more hashtypes will be added, for example hashtypes for hardware dedicated flows.
"M_HASHTYPE_OPAQUE" indicates that the "m_pkthdr.flowid" value is valid and has no particular type. This change removes the need for an "if" statement in TCP transmit code checking for the presence of a valid flowid value. The "if" statement mentioned above is now a direct variable assignment which is then later checked by the respective network drivers like before.
r275483: Remove M_FLOWID from SCTP code.
r276982: Remove no longer used "M_FLOWID" flag from mbuf.h and update the netisr manpage.
Note: The FreeBSD version has been bumped.
Reviewed by: hps, tuexen Sponsored by: Limelight Networks |
281215 |
07-Apr-2015 |
davidcs |
MFC r281006 When an mbuf allocation fails in the receive path, the mbuf containing the received packet is not sent to the host network stack and is reused again on the receive ring. Remaining received packets in the ring are not processed in that invocation of bxe_rxeof() and defered to the task thread |
273736 |
27-Oct-2014 |
hselasky |
MFC r263710, r273377, r273378, r273423 and r273455:
- De-vnet hash sizes and hash masks. - Fix multiple issues related to arguments passed to SYSCTL macros.
Sponsored by: Mellanox Technologies |
272004 |
22-Sep-2014 |
davidcs |
MFC r271728 For ECORE_DBG_BREAK_IF() ECORE_BUG() ECORE_BUG_ON() check bxe_debug flag before printing error message.
Approved by: re(gjb) |
271725 |
17-Sep-2014 |
davidcs |
MFC r268854 Initiate error recovery stats fail to update after 3 retries. Change bxe_panic() ECORE_DBG_BREAK_IF() ECORE_BUG() ECORE_BUG_ON() to panic only if ECORE_STOP_ON_ERROR is defined.
Approved by: re(gjb) |
265917 |
12-May-2014 |
davidcs |
MFC r265703 Modify Copyright information and other strings to reflect Qlogic Corporation's purchase of Broadcom's NetXtreme business. Added clean option to Makefile
Submitted by:David C Somayajulu (davidcs@freebsd.org) QLogic Corporation |
265797 |
10-May-2014 |
davidcs |
MFC r265411 Modify Copyright information to reflect Qlogic Corporation's purchase of Broadcom's NetXtreme business
Submitted by:David C Somayajulu (davidcs@freebsd.org) QLogic Corporation |
263581 |
21-Mar-2014 |
edavis |
MFC 262999 Fixed MSI interrupt allocation and handling. Fixed a DMA mapping leak that occurs when defragmenting packet chains.
Approved by: davidch (mentor) |
260416 |
07-Jan-2014 |
edavis |
Merged r260415 from head.
Approved by: davidch |
260114 |
30-Dec-2013 |
edavis |
Approved by: re@ (gjb) Approved by: davidch (mentor) |
260101 |
30-Dec-2013 |
dim |
MFC r259928:
In sys/dev/bxe/bxe.c, remove static function bxe_has_tx_work_unload(), which has never been used.
Reviewed by: edavis |
258203 |
16-Nov-2013 |
edavis |
Merge r258187 from head.
Approved by: re@ (delphij) Approved by: davidch (mentor) |
256342 |
11-Oct-2013 |
dim |
In sys/dev/bxe/bxe.c, print bus_addr_t values using %#jx, to fix several gcc warnings for PAE kernels.
Approved by: re (glebius) Reviewed by: davidch, edavis |
256319 |
11-Oct-2013 |
edavis |
Merge r256299 from head.
Approved by: re@ (gjb) Approved by: davidch (mentor) |
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
|
255736 |
20-Sep-2013 |
davidch |
Substantial rewrite of bxe(4) to add support for the BCM57712 and BCM578XX controllers.
Approved by: re MFC after: 4 weeks
|
254516 |
19-Aug-2013 |
andre |
Remove unused and incomplete support for delayed fragment checksums from bce(4), bxe(4), mge(4) and ti(4) drivers.
|
246482 |
07-Feb-2013 |
rrs |
This fixes a out-of-order problem with several of the newer drivers. The basic problem was that the driver was pulling the mbuf off the drbr ring and then when sending with xmit(), encounting a full transmit ring. Thus the lower layer xmit() function would return an error, and the drivers would then append the data back on to the ring. For TCP this is a horrible scenario sure to bring on a fast-retransmit.
The fix is to use drbr_peek() to pull the data pointer but not remove it from the ring. If it fails then we either call the new drbr_putback or drbr_advance method. Advance moves it forward (we do this sometimes when the xmit() function frees the mbuf). When we succeed we always call advance. The putback will always copy the mbuf back to the top of the ring. Note that the putback *cannot* be used with a drbr_dequeue() only with drbr_peek(). We most of the time, in putback, would not need to copy it back since most likey the mbuf is still the same, but sometimes xmit() functions will change the mbuf via a pullup or other call. So the optimial case for the single consumer is to always copy it back. If we ever do a multiple_consumer (for lagg?) we will need a test and atomic in the put back possibly a seperate putback_mc() in the ring buf.
Reviewed by: jhb@freebsd.org, jlv@freebsd.org
|
243857 |
04-Dec-2012 |
glebius |
Mechanically substitute flags from historic mbuf allocator with malloc(9) flags in sys/dev.
|
243624 |
27-Nov-2012 |
andre |
Remove unused and unnecessary CSUM_IP_FRAGS checksumming capability. Checksumming the IP header of fragments is no different from doing normal IP headers.
Discussed with: yongari MFC after: 1 week
|
241678 |
18-Oct-2012 |
glebius |
Utilize new macro to initialize if_baudrate.
|
241037 |
28-Sep-2012 |
glebius |
The drbr(9) API appeared to be so unclear, that most drivers in tree used it incorrectly, which lead to inaccurate overrated if_obytes accounting. The drbr(9) used to update ifnet stats on drbr_enqueue(), which is not accurate since enqueuing doesn't imply successful processing by driver. Dequeuing neither mean that. Most drivers also called drbr_stats_update() which did accounting again, leading to doubled if_obytes statistics. And in case of severe transmitting, when a packet could be several times enqueued and dequeued it could have been accounted several times.
o Thus, make drbr(9) API thinner. Now drbr(9) merely chooses between ALTQ queueing or buf_ring(9) queueing. - It doesn't touch the buf_ring stats any more. - It doesn't touch ifnet stats anymore. - drbr_stats_update() no longer exists.
o buf_ring(9) handles its stats itself: - It handles br_drops itself. - br_prod_bytes stats are dropped. Rationale: no one ever reads them but update of a common counter on every packet negatively affects performance due to excessive cache invalidation. - buf_ring_enqueue_bytes() reduced to buf_ring_enqueue(), since we no longer account bytes.
o Drivers handle their stats theirselves: if_obytes, if_omcasts.
o mlx4(4), igb(4), em(4), vxge(4), oce(4) and ixv(4) no longer use drbr_stats_update(), and update ifnet stats theirselves.
o bxe(4) was the most correct driver, it didn't call drbr_stats_update(), thus it was the only driver accurate under moderate load. Now it also maintains stats itself.
o ixgbe(4) had already taken stats from hardware, so just - drop software stats updating. - take multicast packet count from hardware as well.
o mxge(4) just no longer needs NO_SLOW_STATS define.
o cxgb(4), cxgbe(4) need no change, since they obtain stats from hardware.
Reviewed by: jfv, gnn
|
240128 |
05-Sep-2012 |
silby |
Only stop the BXE controller if it was first started. Stopping an uninitialized controller can cause IPMI bus errors on some systems.
Reviewed by: yongari Obtained from: McAfee, Inc. MFC after: 2 weeks
|
232854 |
12-Mar-2012 |
scottl |
Convert a number of drivers to obtaining their parent DMA tag from their PCI device attachment.
|
230133 |
15-Jan-2012 |
uqs |
Remove spurious 8bit chars, turning files into plain ASCII.
|
229767 |
07-Jan-2012 |
kevlo |
ether_ifattach() sets if_mtu to ETHERMTU, don't bother set it again
Reviewed by: yongari
|
229613 |
05-Jan-2012 |
jhb |
Update recently added drivers to use the if_*addr_r*lock() wrapper functions instead of using the IF_ADDR_LOCK directly. The wrapper functions are the supported interface for device drivers.
Reviewed by: bz, philip MFC after: 1 week
|
228526 |
15-Dec-2011 |
kevlo |
s/timout/timeout
|
227843 |
22-Nov-2011 |
marius |
- There's no need to overwrite the default device method with the default one. Interestingly, these are actually the default for quite some time (bus_generic_driver_added(9) since r52045 and bus_generic_print_child(9) since r52045) but even recently added device drivers do this unnecessarily. Discussed with: jhb, marcel - While at it, use DEVMETHOD_END. Discussed with: jhb - Also while at it, use __FBSDID.
|
227309 |
07-Nov-2011 |
ed |
Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs.
The SYSCTL_NODE macro defines a list that stores all child-elements of that node. If there's no SYSCTL_DECL macro anywhere else, there's no reason why it shouldn't be static.
|
226436 |
16-Oct-2011 |
eadler |
- change "is is" to "is" or "it is" - change "the the" to "the"
Approved by: lstewart Approved by: sahil (mentor) MFC after: 3 days
|
225532 |
13-Sep-2011 |
davidch |
- Fix compiler warning in ADD_64() macro.
Approved by: re Obtained from: dimitry@andic.com MFC after: One week
|
222875 |
08-Jun-2011 |
davidch |
- Major reorganization of mbuf handling throughout the driver to increase robustness (no more calls to panic(9)) and simplify code. - Allocate RX/TX data structures as a single buffer rather than an array of 4KB pages to simplify code. - Fixed LRO (aka TPA) code. Removed kernel module parameter and support enabling disabling LRO through ifconfig(8) command line. LRO is still disabled by default but should be enabled for best performance on an endpoint device. - Fixed statistcs code and removed kernel module parameter (stats should just work). - Added many software counters to help identify the cause of some performance issues. - Streamlined adapter internal init/stop code paths. - Fiddled with debug code (adding some here, removing some there). - Continued style(9) adjustments.
|
221826 |
12-May-2011 |
davidch |
- Use bus_describe_intr() to describe interrupt usage. - Use bus_bind_intr() to bind interrupt to a CPU when RSS/TSS is used. - Use M_DONTWAIT for RSS/TSS buffer allocation. - Add statistic to track max DRBR queue depth. - Fix problem in bxe_change_mtu() which referenced the old MTU size in a debug print statement.
MFC after: Two weeks
|
221709 |
09-May-2011 |
davidch |
- Simplify multicast address programming. - Fix an incorrect "uint32_t *" cast in bxe_set_rx_mode().
Submitted by: yongari@ Approved by: davidch@ MFC after: Two weeks
|
221354 |
02-May-2011 |
davidch |
- Fixed a typo in an if() statement when setting flow control for MTU greater than 5000 bytes.
Submitted by: yongari
|
221342 |
02-May-2011 |
davidch |
- Re-committed r220603 which was accidentally backed out by an earlier commit. - Fixed a bug in an unused debug macro.
MFC after: One week.
|
220932 |
21-Apr-2011 |
davidch |
- Centralize driver tunables initialization/validation. - Centralize PCI resource allocation/release. - Enable flowid (TSS) support. - Added "per-fastpath" locks and watchdog timeouts. - Fixed problem where the CQ producer index was advanced beyond the size of the CQ ring during initialization. - Replaced hard-coded debug levels in some debug print statements. - More style(9) fixes.
MFC after: Two weeks
|
220862 |
19-Apr-2011 |
marius |
Remove a comment which is no longer true since r213878, apart from this driver not using mii(4) in the first place.
Reviewed by: yongari
|
220603 |
13-Apr-2011 |
yongari |
Remove mii(4) dependency and unneeded headers.
Reviewed by: davidch
|
220427 |
07-Apr-2011 |
davidch |
- Fixed a problem when multiqueue mode was enabled which caused the CQ chain to be corrupted. - Removed many console print warnings and replaced with driver maintained counters. - Several style(9) fixes.
MFC after: One week.
|
220377 |
05-Apr-2011 |
davidch |
- Removed multiple console error messages and replaced with statistic counters to reduce spew. - Fixed a TSO problem when an mbuf contains both header and payload in the same cluster.
MFC after: One week.
|
220234 |
01-Apr-2011 |
yongari |
Make bxe(4) build with BXE_DEBUG.
|
220230 |
31-Mar-2011 |
davidch |
- Fixed build problem when not useing BXE_DEBUG.
MFC after: One week.
|
220229 |
31-Mar-2011 |
davidch |
- Freshened debug support code. - Renamed several RX variable for more consistent usage. - Fixed a potential problem when masking RX CQ producer value.
MFC after: One week.
|
220228 |
31-Mar-2011 |
davidch |
- Fixed DMA engine errors by increasing timeouts to 200ms for reads/writes. - Improved some error reporting calls to include file name/line number. - Various style(9) fixes.
MFC after: One week.
|
220226 |
31-Mar-2011 |
davidch |
- Added debug support to monitor mbuf defrag attempts/failures.
MFC after: One week.
|
220224 |
31-Mar-2011 |
davidch |
- Print number of queues when RSS is enabled. - Improve reporting of media type (not always 10GBase-CX4).
MFC after: One week
|
220223 |
31-Mar-2011 |
davidch |
- Fixed a problem where the stack passed a TSO frame larger than the 64K size allowed by the DMA descriptor for TSO frames.
MFC after: One week
|
219902 |
23-Mar-2011 |
jhb |
Do a sweep of the tree replacing calls to pci_find_extcap() with calls to pci_find_cap() instead.
|
219656 |
15-Mar-2011 |
davidch |
- Inadvertently committed files with +x attribute, fixed. - Minor change to info output string.
|
219647 |
14-Mar-2011 |
davidch |
- Initial release of bxe(4) to support Broadcom NetXtreme II 10GbE. (BCM57710, BCM57711, BCM57711E)
MFC after: One month
|