Remove support for QLNX_RCV_IN_TASKQ - i.e., Rx only in TaskQ.Added support for LLDP passthruUpgrade ECORE to version 8.33.5.0Upgrade STORMFW to version 8.33.7.0Added support for SRIOVMFC after
Remove support for QLNX_RCV_IN_TASKQ - i.e., Rx only in TaskQ.Added support for LLDP passthruUpgrade ECORE to version 8.33.5.0Upgrade STORMFW to version 8.33.7.0Added support for SRIOVMFC after:5 days
show more ...
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
Use an accessor function to access ifr_data.This fixes 32-bit compat (no ioctl command defintions are requiredas struct ifreq is the same size). This is believed to be sufficent tofully support
Use an accessor function to access ifr_data.This fixes 32-bit compat (no ioctl command defintions are requiredas struct ifreq is the same size). This is believed to be sufficent tofully support ifconfig on 32-bit systems.Reviewed by: kibObtained from: CheriBSDMFC after: 1 weekRelnotes: yesSponsored by: DARPA, AFRLDifferential Revision: https://reviews.freebsd.org/D14900
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
Fix qlnx_tso_check() so that every window of(ETH_TX_LSO_WINDOW_BDS_NUM - nbds_in_hdr) has atleastETH_TX_LSO_WINDOW_MIN_LEN bytesMFC after:5 days
Performance enhancements to reduce CPU utililization for large number ofTCP connections (order of tens of thousands), with predominantly Transmits.Choice to perform receive operations either in IT
Performance enhancements to reduce CPU utililization for large number ofTCP connections (order of tens of thousands), with predominantly Transmits.Choice to perform receive operations either in IThread or Taskqueue Thread.Submitted by:[email protected]MFC after:5 days
Provide compile to choose receive processing in either Ithread or Taskqueue Thread.
qlnx: gcc build errorsPropagate warning flags from kern.opts.mk and then fix minor -Werrorissues when building with gcc from -Wredundant-decls, -Wnested-externs,-Wuninitialized.Reviewed by: dav
qlnx: gcc build errorsPropagate warning flags from kern.opts.mk and then fix minor -Werrorissues when building with gcc from -Wredundant-decls, -Wnested-externs,-Wuninitialized.Reviewed by: davidcsApproved by: markj (mentor)Sponsored by: Dell EMC IsilonDifferential Revision: https://reviews.freebsd.org/D11413
Upgrade STORMFW to 8.30.0.0 and ecore version to 8.30.0.0Add support for pci deviceID 0x8070 for QLE41xxx product line whichsupports 10GbE/25GbE/40GbEMFC after:5 days
Check for IPV6 TCP/UDP CSUM offload in pkt header during transmits.Submitted by:[email protected]
QL_DPRINT macro modfied to handle multiple args; print line#.Submitted by:[email protected]MFC after:3 days
1. Move Rx Processing to fp_taskqueue(). With this CPU utilization for processing interrupts drops to around 1% for 100G and under 1% for other speeds.2. Use sysctls for TRACE_LRO_CNT and TRACE_TSO_
1. Move Rx Processing to fp_taskqueue(). With this CPU utilization for processing interrupts drops to around 1% for 100G and under 1% for other speeds.2. Use sysctls for TRACE_LRO_CNT and TRACE_TSO_PKT_LEN3. remove unused mtx tx_lock4. bind taskqueue kernel thread to the appropriate cpu core5. when tx_ring is full, stop further transmits till at least 1/16th of the Tx Ring is empty. In our case 1K entries. Also if there are rx_pkts to process, put the taskqueue thread to sleep for 100ms, before enabling interrupts.6. Use rx_pkt_threshold of 128.MFC after:3 days
llh_func_filter needs to be configured for 100GMFC after:3 days
Fix rss_ind_table entry for num_funcs > 1MFC after:3 days
Fix defects reported by Coverity1. Deadcode in ecore_init_cache_line_size(), qlnx_ioctl() and qlnx_clean_filters()2. ARRAY_VS_SINGLETON issue in qlnx_remove_all_mcast_mac() and qlnx_update_rx_pro
Fix defects reported by Coverity1. Deadcode in ecore_init_cache_line_size(), qlnx_ioctl() and qlnx_clean_filters()2. ARRAY_VS_SINGLETON issue in qlnx_remove_all_mcast_mac() and qlnx_update_rx_prod()MFC after:5 days
Cleanup the bitmap_xxx() functions in the LinuxKPI:- Move all bitmap related functions from bitops.h to bitmap.h, similar to what Linux does.- Apply some minor code cleanup and simplifications
Cleanup the bitmap_xxx() functions in the LinuxKPI:- Move all bitmap related functions from bitops.h to bitmap.h, similar to what Linux does.- Apply some minor code cleanup and simplifications to optimize the generated code when using static inline functions.- Implement the following list of bitmap functions which are needed by drm-next and ibcore: - bitmap_find_next_zero_area_off() - bitmap_find_next_zero_area() - bitmap_or() - bitmap_and() - bitmap_xor()- Add missing include directives to the qlnxe driver (davidcs@ has been notified)MFC after: 1 weekSponsored by: Mellanox Technologies
Add 25/40/100Gigabit Ethernet Driver version v1.3.0 for Cavium Inc's.Qlogic 45000 Series AdaptersMFC after:2 weeks