MFC r351620: qlxgbe: avoid NULL deref in error caseReported by: Dr Silvio Cesare of InfoSectSponsored by: The FreeBSD Foundation
ifnet: Replace if_addr_lock rwlock with epoch + mutexRun on LLNW canaries and tested by pho@gallatin:Using a 14-core, 28-HTT single socket E5-2697 v3 with a 40GbE MLX5based ConnectX 4-LX NIC, I
ifnet: Replace if_addr_lock rwlock with epoch + mutexRun on LLNW canaries and tested by pho@gallatin:Using a 14-core, 28-HTT single socket E5-2697 v3 with a 40GbE MLX5based ConnectX 4-LX NIC, I see an almost 12% improvement in receivedpacket rate, and a larger improvement in bytes delivered all the wayto userspace.When the host receiving 64 streams of netperf -H $DUT -t UDP_STREAM -- -m 1,I see, using nstat -I mce0 1 before the patch:InMpps OMpps InGbs OGbs err TCP Est %CPU syscalls csw irq GBfree4.98 0.00 4.42 0.00 4235592 33 83.80 4720653 2149771 1235 247.324.73 0.00 4.20 0.00 4025260 33 82.99 4724900 2139833 1204 247.324.72 0.00 4.20 0.00 4035252 33 82.14 4719162 2132023 1264 247.324.71 0.00 4.21 0.00 4073206 33 83.68 4744973 2123317 1347 247.324.72 0.00 4.21 0.00 4061118 33 80.82 4713615 2188091 1490 247.324.72 0.00 4.21 0.00 4051675 33 85.29 4727399 2109011 1205 247.324.73 0.00 4.21 0.00 4039056 33 84.65 4724735 2102603 1053 247.32After the patchInMpps OMpps InGbs OGbs err TCP Est %CPU syscalls csw irq GBfree5.43 0.00 4.20 0.00 3313143 33 84.96 5434214 1900162 2656 245.515.43 0.00 4.20 0.00 3308527 33 85.24 5439695 1809382 2521 245.515.42 0.00 4.19 0.00 3316778 33 87.54 5416028 1805835 2256 245.515.42 0.00 4.19 0.00 3317673 33 90.44 5426044 1763056 2332 245.515.42 0.00 4.19 0.00 3314839 33 88.11 5435732 1792218 2499 245.525.44 0.00 4.19 0.00 3293228 33 91.84 5426301 1668597 2121 245.52Similarly, netperf reports 230Mb/s before the patch, and 270Mb/s after the patchReviewed by: gallatinSponsored by: Limelight NetworksDifferential Revision: https://reviews.freebsd.org/D15366
show more ...
Upgraded FW Related Files to version 5.4.67MFC after:5 days
1. Add additional debug prints.2. Break transmit when IFF_DRV_RUNNING is OFF.3. set desc_count=0 for default case in switch in ql_rcv_isr()MFC after:5 days
1. Added support to offline a port if is error recovery on successful.2. Sysctls to enable/disable driver_state_dump and error_recovery.3. Sysctl to control the delay between hw/fw reinitialization
1. Added support to offline a port if is error recovery on successful.2. Sysctls to enable/disable driver_state_dump and error_recovery.3. Sysctl to control the delay between hw/fw reinitialization and restarting the fastpath.4. Stop periodic stats retrieval if interface has IFF_DRV_RUNNING flag off.5. Print contents of PEG_HALT_STATUS1 and PEG_HALT_STATUS2 on heartbeat failure.6. Speed up slowpath shutdown during error recovery.7. link_state update using atomic_store.8. Added timestamp information on driver state and minidump captures.9. Added support for Slowpath event logging10.Added additional failure injection types to simulate failures.
sys/dev: further adoption of SPDX licensing ID tags.Mainly focus on files that use BSD 2-Clause license, however the tool Iwas using misidentified many licenses so this was mostly a manual - error
sys/dev: further adoption of SPDX licensing ID tags.Mainly focus on files that use BSD 2-Clause license, however the tool Iwas using misidentified many licenses so this was mostly a manual - errorprone - task.The Software Package Data Exchange (SPDX) group provides a specificationto make it easier for automated tools to detect and summarize well knownopensource licenses. We are gradually adopting the specification, notingthat the tags are considered only advisory and do not, in any way,superceed or replace the license texts.
ql*_def.h: fix QL_ALIGN parenthesizationQL_ALIGN is a set of copies of roundup2, but it was missing an outer setof parentheses, which began to matter with r324538. Now, fully copy theparenthesiza
ql*_def.h: fix QL_ALIGN parenthesizationQL_ALIGN is a set of copies of roundup2, but it was missing an outer setof parentheses, which began to matter with r324538. Now, fully copy theparenthesization of roundup2.Reviewed by: davidcsDifferential Revision: https://reviews.freebsd.org/D12673
Added support driver state capture/retrievalMFC after:5 days
Add sanity checks in ql_hw_send() qla_send() to ensure that empty slotsin Tx Ring map to empty slot in Tx_buf array before Transmits. If thechecks fail further Transmission on that Tx Ring is preve
Add sanity checks in ql_hw_send() qla_send() to ensure that empty slotsin Tx Ring map to empty slot in Tx_buf array before Transmits. If thechecks fail further Transmission on that Tx Ring is prevented.MFC after:5 days
Revert Commit r324290 Add sanity checks in ql_hw_send() qla_send() to ensure that empty slots in Tx Ring map to empty slot in Tx_buf array before Transmits. If the checks fail further Transmiss
Revert Commit r324290 Add sanity checks in ql_hw_send() qla_send() to ensure that empty slots in Tx Ring map to empty slot in Tx_buf array before Transmits. If the checks fail further Transmission on that Tx Ring is prevented.
Add sanity checks in ql_hw_send() qla_send() to ensure that empty slotsin Tx Ring map to empty slot in Tx_buf array before Transmits. If thechecks fail further Transmission on that Tx Ring is prevented.
Tx Ring Shadow Consumer Index Register needs to be cleared priorto passing it's physical address to the FW during Tx Create Context.MFC after:3 days
Fix delete all multicast addressesSubmitted by:[email protected]MFC after:5 days
1. ql_hw.c: In ql_hw_send() return EINVAL when TSO framelength exceeds max supported length by HW.(davidcs)2. ql_os.c: In qla_send() call bus_dmamap_unload before freeing mbuf or recreating dmma
1. ql_hw.c: In ql_hw_send() return EINVAL when TSO framelength exceeds max supported length by HW.(davidcs)2. ql_os.c: In qla_send() call bus_dmamap_unload before freeing mbuf or recreating dmmamap.(davidcs) In qla_fp_taskqueue() Add additional checks for IFF_DRV_RUNNING Fix qla_clear_tx_buf() call bus_dmamap_sync() before freeing mbuf.Submitted by:[email protected]MFC after:5 days
Add sysctl "enable_minidump" to turn on/off automatic minidump retrievalMFC after:5 days
Update minidump template for version 5.4.66MFC after:5 days
Upgrade FW to 5.4.66sysctls to display stats, stats polled every 2 secondsModify QLA_LOCK()/QLA_UNLOCK() to not sleep after acquiring mtx_lockAdd support to turn OFF/ON error recovery following he
Upgrade FW to 5.4.66sysctls to display stats, stats polled every 2 secondsModify QLA_LOCK()/QLA_UNLOCK() to not sleep after acquiring mtx_lockAdd support to turn OFF/ON error recovery following heartbeat failure fordebug purposes.Set default max values to 32 Tx/Rx/SDS ringsMFC after:5 days
Raise the watchdog timer interval to 2 ticks, there by guaranteeingthat it fires between 1ms and 2ms. `Treat two consecutive occurrences of Heartbeat failures as a legitimateHeartbeat failureMFC
Raise the watchdog timer interval to 2 ticks, there by guaranteeingthat it fires between 1ms and 2ms. `Treat two consecutive occurrences of Heartbeat failures as a legitimateHeartbeat failureMFC after:3 days
Release mtx hw_lock before calling pause() in qla_stop() andqla_error_recovery()MFC after: 5 days
Allow MTU changes without ifconfig down/upMFC after:5 days
Add pkts_cnt_oversized to stats.
Remove register keyword from sys/ and ANSIfy prototypesA long long time ago the register keyword told the compiler to storethe corresponding variable in a CPU register, but it is not relevantfor
Remove register keyword from sys/ and ANSIfy prototypesA long long time ago the register keyword told the compiler to storethe corresponding variable in a CPU register, but it is not relevantfor any compiler used in the FreeBSD world today.ANSIfy related prototypes while here.Reviewed by: cem, jhbSponsored by: The FreeBSD FoundationDifferential Revision: https://reviews.freebsd.org/D10193
Fix bug where MTX_DEF lock was held while taskqueue_drain() was invoked.Check IFF_DRV_RUNNING flag is set prior to calling ql_hw_set_multi()MFC after:3 days
Cleanup QLA_LOCK/QLA_UNLOCK macrosremove unused QLA_TX_LOCK/QLA_TX_UNLOCK macrosformat qla_error_recovery()MFC after:3 days
Add support for optional Soft LROMFC after:5 days
123