aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/qlnx
Commit message (Collapse)AuthorAgeFilesLines
...
* qlnxe(4): Fix a typo in a source code commentGordon Bergling2022-07-311-1/+1
| | | | | | - s/pedning/pending/ MFC after: 3 days
* qlnxe(4): Fix a typo in a source code commentGordon Bergling2022-06-051-1/+1
| | | | | | - s/indepent/independent/ MFC after: 3 days
* qlnx/qlxgb/qlxgbe/qlxge: Remove unused devclass arguments to DRIVER_MODULE.John Baldwin2022-05-091-5/+2
|
* qlnxe(4): Fix a typo in a source code commentGordon Bergling2022-04-091-1/+1
| | | | | | - s/mulitple/multiple/ MFC after: 3 days
* qlnx: Mark variables only used in debug traces as unused.John Baldwin2022-04-081-5/+5
|
* qlnx: Return error from qlnxr_mod_load if it fails.John Baldwin2022-04-082-2/+2
| | | | | Fix qlnx_rdma_register_if return ENXIO rather than -1 on error and propagate that error to the caller in qlnxr_mod_load.
* qlnx: Comment out remaining references to tx_data_bd.John Baldwin2022-04-081-2/+2
|
* qlnx: Move all references to total_rx_count under #ifdef QLNX_SOFT_LRO.John Baldwin2022-04-081-1/+6
|
* qlnx: Remove unused variables.John Baldwin2022-04-085-60/+2
|
* qlnxe(4): Fix a typo in a source code commentGordon Bergling2022-03-281-2/+2
| | | | | | - s/existance/existence/ MFC after: 3 days
* Fix typo on "Celsius"Elyes HAOUAS2021-11-191-1/+1
| | | | | | | "Celcius" --> "Celsius" Signed-off-by: Elyes HAOUAS <ehaouas@noos.fr> Pull Request: https://github.com/freebsd/freebsd-src/pull/551/files
* qlnxe: Fix typos in two error messagesGordon Bergling2021-10-021-2/+2
| | | | | | - s/erorr/error/ MFC after: 1 week
* Fix some common typos in source code commentsGordon Bergling2021-08-281-1/+1
| | | | | | | | | - s/priviledged/privileged/ - s/funtion/function/ - s/doens't/doesn't/ - s/sychronization/synchronization/ MFC after: 3 days
* Fix some common typos in commentsGordon Bergling2021-08-081-1/+1
| | | | | | | | - s/configuraiton/configuration/ - s/specifed/specified/ - s/compatiblity/compatibility/ MFC after: 5 days
* ibcore: Kernel space update based on Linux 5.7-rc1.Hans Petter Selasky2021-07-284-206/+107
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Overview: This is the first stage of a RDMA stack upgrade introducing kernel changes only based on Linux 5.7-rc1. This patch is based on about four main areas of work: - Update of the IB uobjects system: - The memory holding so-called AH, CQ, PD, SRQ and UCONTEXT objects is now managed by ibcore. This also require some changes in the kernel verbs API. The updated verbs changes are typically about initialize and deinitialize objects, and remove allocation and free of memory. - Update of the uverbs IOCTL framework: - The parsing and handling of user-space commands has been completely refactored to integrate with the updated IB uobjects system. - Various changes and updates to the generic uverbs interfaces in device drivers including the new uAPI surface. - The mlx5_ib_devx.c in mlx5ib and related mlx5 core changes. Dependencies: - The mlx4ib driver code has been updated with the minimum changes needed. - The mlx5ib driver code has been updated with the minimum changes needed including DV support. Compatibility: - All user-space facing APIs are backwards compatible after this change. - All kernel-space facing RDMA APIs are backwards compatible after this change, with exception of ib_create_ah() and ib_destroy_ah() which takes a new flag. - The "ib_device_ops" structure exist, but only contains the driver ID and some structure sizes. Differences from Linux: - Infiniband drivers must use the INIT_IB_DEVICE_OPS() macro to set the sizes needed for allocating various IB objects, when adding IB device instances. Security: - PRIV_NET_RAW is needed to use raw ethernet transmit features. - PRIV_DRIVER is needed to use other privileged operations. Based on upstream Linux, Torvalds (5.7-rc1): 8632e9b5645bbc2331d21d892b0d6961c1a08429 MFC after: 1 week Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D31149 Sponsored by: NVIDIA Networking
* ibcore: Declare ib_post_send() and ib_post_recv() arguments constHans Petter Selasky2021-07-124-33/+33
| | | | | | | | | | | | | | | | | | | Since neither ib_post_send() nor ib_post_recv() modify the data structure their second argument points at, declare that argument const. This change makes it necessary to declare the 'bad_wr' argument const too and also to modify all ULPs that call ib_post_send(), ib_post_recv() or ib_post_srq_recv(). This patch does not change any functionality but makes it possible for the compiler to verify whether the ib_post_(send|recv|srq_recv) really do not modify the posted work request. Linux commit: f696bf6d64b195b83ca1bdb7cd33c999c9dcf514 7bb1fafc2f163ad03a2007295bb2f57cfdbfb630 d34ac5cd3a73aacd11009c4fc3ba15d7ea62c411 MFC after: 1 week Reviewed by: kib Sponsored by: Mellanox Technologies // NVIDIA Networking
* ibcore: Simplify ib_modify_qp_is_ok().Hans Petter Selasky2021-07-121-18/+0
| | | | | | | | | | | | | | | | All callers to ib_modify_qp_is_ok() provides enum ib_qp_state makes the checks of out-of-scope redundant. Let's remove them together with updating function signature to return boolean result. While at it remove unused "ll" parameter from ib_modify_qp_is_ok(). Linux commit: 19b1f54099b6ee334acbfbcfbdffd1d1f057216d d31131bba5a1630304c55ea775c48cc84912ab59 MFC after: 1 week Reviewed by: kib Sponsored by: Mellanox Technologies // NVIDIA Networking
* qlnxr: Properly initialize the Linux device structureMark Johnston2021-04-122-7/+5
| | | | | | | | | | | | | | | The driver needs to provide a LinuxKPI device structure to register itself with the IB subsystem. It was erroneously using a copy of its FreeBSD device structure for this purpose. Use linux_pci_attach_device() instead, following the example of the Chelsio iwarp driver. Also ensure that we don't leak the faked device during detach. Reviewed by: hselasky MFC after: 1 week Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D29595
* qlnxr: remove netdevice.hBjoern A. Zeeb2021-03-261-1/+0
| | | | | | | | | | Remove unused #includes of a LinuxKPI header noticed while trying to solve LinuxKPI struct net_device and related functions. This takes qlnxr out of the picture of D29366. Sponsored-by: The FreeBSD Foundation MFC-after: 2 weeks X-D-R: D29366 (extracted as further cleanup)
* qlnxr: remove duplicate definesBjoern A. Zeeb2021-03-241-5/+0
| | | | | | | | | | | | upper_32_bits() and lower_32_bits() are defined twice in this file. With the extra conditinal removed on LinuxKPI in 3b1ecc9fa1b5 they are also included from there already. Use the LinuxKPI version and remove the two local ones. Sponsored-by: The FreeBSD Foundation Reviewed-by: hselasky MFC-after: 2 weeks Differential Revision: https://reviews.freebsd.org/D29392
* qlnx: clean up empty lines in .c and .h filesMateusz Guzik2020-09-0181-1299/+65
| | | | Notes: svn path=/head/; revision=365169
* qnlx: Do not redifines types.Emmanuel Vadot2020-05-101-5/+2
| | | | | | | | | | | | r360870 added linux/slab.h into liunx/bitmap.h and this include linux/types.h The qlnx driver is redefining some of those types so remove them and add an explicit linux/types.h include. Pointy hat: manu Reported by: Austin Shafer <ashafer@badland.io> Notes: svn path=/head/; revision=360872
* Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many)Pawel Biernacki2020-02-262-19/+19
| | | | | | | | | | | | | | | | | | | r357614 added CTLFLAG_NEEDGIANT to make it easier to find nodes that are still not MPSAFE (or already are but aren’t properly marked). Use it in preparation for a general review of all nodes. This is non-functional change that adds annotations to SYSCTL_NODE and SYSCTL_PROC nodes using one of the soon-to-be-required flags. Mark all obvious cases as MPSAFE. All entries that haven't been marked as MPSAFE before are by default marked as NEEDGIANT Approved by: kib (mentor, blanket) Commented by: kib, gallatin, melifaro Differential Revision: https://reviews.freebsd.org/D23718 Notes: svn path=/head/; revision=358333
* Convert to if_foreach_llmaddr() KPI.Gleb Smirnoff2019-10-211-23/+17
| | | | Notes: svn path=/head/; revision=353854
* Correct the scope of several global variables.Mark Johnston2019-09-271-4/+3
| | | | | | | | | | | They are accessed from multiple compilation units. No functional change intended. MFC after: 1 week Sponsored by: Netflix Notes: svn path=/head/; revision=352823
* qlnxr(4), qlnxe(4): Unbreak gcc buildConrad Meyer2019-02-012-25/+0
| | | | | | | | | Remove redundant definitions and conditionalize Clang-specific CFLAGS. Sponsored by: Dell EMC Isilon Notes: svn path=/head/; revision=343670
* Add RDMA (iWARP and RoCEv1) supportDavid C Somayajulu2019-01-3115-0/+23125
| | | | | | | | | | David Somayajulu (davidcs): Overall RDMA Driver infrastructure and iWARP Anand Khoje (akhoje@marvell.com): RoCEv1 verbs implementation MFC after:5 days Notes: svn path=/head/; revision=343598
* Remove support for QLNX_RCV_IN_TASKQ - i.e., Rx only in TaskQ.David C Somayajulu2018-07-2588-62337/+86284
| | | | | | | | | | | | Added support for LLDP passthru Upgrade ECORE to version 8.33.5.0 Upgrade STORMFW to version 8.33.7.0 Added support for SRIOV MFC after:5 days Notes: svn path=/head/; revision=336695
* ifnet: Replace if_addr_lock rwlock with epoch + mutexMatt Macy2018-05-181-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Run on LLNW canaries and tested by pho@ gallatin: Using a 14-core, 28-HTT single socket E5-2697 v3 with a 40GbE MLX5 based ConnectX 4-LX NIC, I see an almost 12% improvement in received packet rate, and a larger improvement in bytes delivered all the way to 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 GBfree 4.98 0.00 4.42 0.00 4235592 33 83.80 4720653 2149771 1235 247.32 4.73 0.00 4.20 0.00 4025260 33 82.99 4724900 2139833 1204 247.32 4.72 0.00 4.20 0.00 4035252 33 82.14 4719162 2132023 1264 247.32 4.71 0.00 4.21 0.00 4073206 33 83.68 4744973 2123317 1347 247.32 4.72 0.00 4.21 0.00 4061118 33 80.82 4713615 2188091 1490 247.32 4.72 0.00 4.21 0.00 4051675 33 85.29 4727399 2109011 1205 247.32 4.73 0.00 4.21 0.00 4039056 33 84.65 4724735 2102603 1053 247.32 After the patch InMpps OMpps InGbs OGbs err TCP Est %CPU syscalls csw irq GBfree 5.43 0.00 4.20 0.00 3313143 33 84.96 5434214 1900162 2656 245.51 5.43 0.00 4.20 0.00 3308527 33 85.24 5439695 1809382 2521 245.51 5.42 0.00 4.19 0.00 3316778 33 87.54 5416028 1805835 2256 245.51 5.42 0.00 4.19 0.00 3317673 33 90.44 5426044 1763056 2332 245.51 5.42 0.00 4.19 0.00 3314839 33 88.11 5435732 1792218 2499 245.52 5.44 0.00 4.19 0.00 3293228 33 91.84 5426301 1668597 2121 245.52 Similarly, netperf reports 230Mb/s before the patch, and 270Mb/s after the patch Reviewed by: gallatin Sponsored by: Limelight Networks Differential Revision: https://reviews.freebsd.org/D15366 Notes: svn path=/head/; revision=333813
* Use an accessor function to access ifr_data.Brooks Davis2018-03-301-2/+2
| | | | | | | | | | | | | | | | This fixes 32-bit compat (no ioctl command defintions are required as struct ifreq is the same size). This is believed to be sufficent to fully support ifconfig on 32-bit systems. Reviewed by: kib Obtained from: CheriBSD MFC after: 1 week Relnotes: yes Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D14900 Notes: svn path=/head/; revision=331797
* ql*_def.h: fix QL_ALIGN parenthesizationRyan Libby2017-10-181-1/+1
| | | | | | | | | | | | QL_ALIGN is a set of copies of roundup2, but it was missing an outer set of parentheses, which began to matter with r324538. Now, fully copy the parenthesization of roundup2. Reviewed by: davidcs Differential Revision: https://reviews.freebsd.org/D12673 Notes: svn path=/head/; revision=324728
* Fix qlnx_tso_check() so that every window ofDavid C Somayajulu2017-08-241-11/+22
| | | | | | | | | | (ETH_TX_LSO_WINDOW_BDS_NUM - nbds_in_hdr) has atleast ETH_TX_LSO_WINDOW_MIN_LEN bytes MFC after:5 days Notes: svn path=/head/; revision=322852
* Performance enhancements to reduce CPU utililization for large number ofDavid C Somayajulu2017-08-113-124/+486
| | | | | | | | | | | | TCP connections (order of tens of thousands), with predominantly Transmits. Choice to perform receive operations either in IThread or Taskqueue Thread. Submitted by:Vaishali.Kulkarni@cavium.com MFC after:5 days Notes: svn path=/head/; revision=322408
* Provide compile to choose receive processing in either Ithread or Taskqueue ↵David C Somayajulu2017-08-092-43/+121
| | | | | | | Thread. Notes: svn path=/head/; revision=322331
* qlnx: gcc build errorsRyan Libby2017-07-183-12/+4
| | | | | | | | | | | | | | Propagate warning flags from kern.opts.mk and then fix minor -Werror issues when building with gcc from -Wredundant-decls, -Wnested-externs, -Wuninitialized. Reviewed by: davidcs Approved by: markj (mentor) Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D11413 Notes: svn path=/head/; revision=321106
* Upgrade STORMFW to 8.30.0.0 and ecore version to 8.30.0.0David C Somayajulu2017-06-1576-59910/+65202
| | | | | | | | | | Add support for pci deviceID 0x8070 for QLE41xxx product line which supports 10GbE/25GbE/40GbE MFC after:5 days Notes: svn path=/head/; revision=319964
* Check for IPV6 TCP/UDP CSUM offload in pkt header during transmits.David C Somayajulu2017-05-221-1/+2
| | | | | | | Submitted by:Shminderjit.Singh@cavium.com Notes: svn path=/head/; revision=318676
* QL_DPRINT macro modfied to handle multiple args; print line#.David C Somayajulu2017-05-163-441/+452
| | | | | | | | Submitted by:Shminderjit.Singh@cavium.com MFC after:3 days Notes: svn path=/head/; revision=318383
* 1. Move Rx Processing to fp_taskqueue(). With this CPU utilization for ↵David C Somayajulu2017-05-163-112/+142
| | | | | | | | | | | | | | | 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_LEN 3. remove unused mtx tx_lock 4. bind taskqueue kernel thread to the appropriate cpu core 5. 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 Notes: svn path=/head/; revision=318382
* llh_func_filter needs to be configured for 100GDavid C Somayajulu2017-05-101-10/+24
| | | | | | | MFC after:3 days Notes: svn path=/head/; revision=318126
* Fix rss_ind_table entry for num_funcs > 1David C Somayajulu2017-04-131-1/+1
| | | | | | | MFC after:3 days Notes: svn path=/head/; revision=316747
* Fix defects reported by CoverityDavid C Somayajulu2017-04-122-13/+17
| | | | | | | | | | | | 1. 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 Notes: svn path=/head/; revision=316720
* Cleanup the bitmap_xxx() functions in the LinuxKPI:Hans Petter Selasky2017-04-061-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | - 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 week Sponsored by: Mellanox Technologies Notes: svn path=/head/; revision=316568
* Add 25/40/100Gigabit Ethernet Driver version v1.3.0 for Cavium Inc's.David C Somayajulu2017-04-0491-0/+226030
Qlogic 45000 Series Adapters MFC after:2 weeks Notes: svn path=/head/; revision=316485