#
355240 |
|
30-Nov-2019 |
np |
MFC r349499:
cxgbe/iw_cxgbe: Remove unused field from the endpoint structure.
|
#
346950 |
|
30-Apr-2019 |
np |
MFC r343569, r345307
r343569: cxgbe/iw_cxgbe: Fix an address calculation in the memory registration code that was added in r342266.
Submitted by: Krishnamraju Eraparaju @ Chelsio Sponsored by: Chelsio Communications
r345307: iw_cxgbe: Remove unused smac_idx from the ep structure.
Submitted by: Krishnamraju Eraparaju @ Chelsio
|
#
346923 |
|
29-Apr-2019 |
np |
MFC r339891, r340063, r342266, r342270, r342272, r342288-r342289
r339891: cxgbe/iw_cxgbe: Install the socket upcall before calling soconnect to ensure that it always runs when soisconnected does.
Submitted by: Krishnamraju Eraparaju @ Chelsio Sponsored by: Chelsio Communications
r340063: cxgbe/iw_cxgbe: Suppress spurious "Unexpected streaming data ..." messages.
Submitted by: Krishnamraju Eraparaju @ Chelsio Sponsored by: Chelsio Communications
r342266: cxgbe/iw_cxgbe: Use DSGLs to write to card's memory when appropriate.
Submitted by: Krishnamraju Eraparaju @ Chelsio Sponsored by: Chelsio Communications
r342270: cxgbe/iw_cxgbe: Add a knob for testing that lets iWARP connections cycle through 4-tuples quickly.
Submitted by: Krishnamraju Eraparaju @ Chelsio Sponsored by: Chelsio Communications
r342272: cxgbe/iw_cxgbe: Use -ve errno when interfacing with linuxkpi/OFED.
Submitted by: Krishnamraju Eraparaju @ Chelsio Sponsored by: Chelsio Communications
r342288: cxgbe/iw_cxgbe: Do not terminate CTRx messages with \n.
r342289: cxgbe/iw_cxgbe: Remove redundant CTRs from c4iw_alloc/c4iw_rdev_open. This information is readily available elsewhere.
Sponsored by: Chelsio Communications
|
#
339395 |
|
17-Oct-2018 |
np |
MFC r320419, r337679, r338366, and r338652.
r320419: cxgbe/iw_cxgbe: Disable debug output by default. The help text for the sysctl already says that the default is 0.
r337679: Remove unused stuff from iw_cxgbe.h
r338366: cxgbe/iw_cxgbe: Fix iWARP RDMA + VIMAGE operation by setting the VNET properly in a couple of places in the driver.
r338652: cxgbe/iw_cxgbe: Fix reported build breakage when the kernel configuration has "device cxgbe' but no VIMAGE.
Sponsored by: Chelsio Communications
|
#
339389 |
|
16-Oct-2018 |
np |
MFC r327254, r327904, and r328994.
r327254: cxgbe/iw_cxgbe: Fix iWARP over VLANs (catch up with r326169).
r327904: cxgbe/iw_cxgbe: Remove duplicates to fix compilation with recent gcc.
r328994: iw_cxgbe: Remove declaration of a function that no longer exists.
Sponsored by: Chelsio Communications
|
#
331769 |
|
30-Mar-2018 |
hselasky |
MFC r303505, r303506, r303512, r303513, r303646, r320418, r323082, r326169, r326563, r326649, r326716, r326764, r326765 and r329222:
RoCE/infiniband/iWarp upgrade to Linux 4.9 for kernel and userspace. This commit merges projects/bsd_rdma_4_9 to 11-stable.
Compatibility wrappers have been made for existing 11-stable ibcore APIs, including ib_reg_phys_mr(). Refer to "sys/ofed/include/rdma/ib_verbs_compat.h" for more information.
The iw_cxgb driver has not been updated and has been disconnected from the build.
Sponsored by: Mellanox Technologies
MFC r326169 and r326563: RoCE/infiniband upgrade to Linux v4.9 for kernel and userspace.
List of kernel sources used: ============================
1) kernel sources were cloned from git://github.com/torvalds/linux.git Top commit 69973b830859bc6529a7a0468ba0d80ee5117826 - tag: v4.9, linux-4.9
2) krping was cloned from https://github.com/larrystevenwise/krping Top commit 292a2f1abf0348285e678a82264740d52e4dcfe4
List of userspace sources used: ===============================
1) rdma-core was cloned from https://github.com/linux-rdma/rdma-core.git Top commit d65138ef93af30b3ea249f3a84aa6a24ba7f8a75
2) OpenSM was cloned from git://git.openfabrics.org/~halr/opensm.git Top commit 85f841cf209f791c89a075048a907020e924528d
3) libibmad was cloned from git://git.openfabrics.org/~iraweiny/libibmad.git Tag 1.3.13 with some additional patches from Mellanox.
4) infiniband-diags was cloned from git://git.openfabrics.org/~iraweiny/infiniband-diags.git Tag 1.6.7 with some additional patches from Mellanox.
NOTES: ======
1) The mthca driver has been removed from userspace. 2) All GPLv2 only sources have been removed and where applicable rewritten from scratch under a BSD license. 3) List of fully supported drivers in userspace and kernel: a) iw_cxgbe (Chelsio) b) mlx4ib (Mellanox) c) mlx5ib (Mellanox) 4) WITH_OFED=YES is still required by make in order to build OFED userspace and kernel code. 5) Full support has been added for routable RoCE, RoCE v2.
MFC r326649: Disconnect OFED after r326169 broke all DIRDEPS support for it.
MFC r326716: Correctly define the unordered_map namespace in ofed/libibnetdisc .
This should fix ofed/libibnetdisc compilation with C-compilers different from clang and GCC v4.2.1.
Submitted by: kib Sponsored by: Mellanox Technologies
MFC r326764: ofed: Remove duplicated symbols from the version file.
ld.bfd accepts multiple listing of the same symbol in the version script. lld is stricter and errors out. Since arm64 and sometimes amd64 use lld, we should correct this cosmetic issue.
Sponsored by: Mellanox Technologies Reviewed by: hselasky Differential revision: https://reviews.freebsd.org/D13329
MFC r326765: ofed: Define barriers for mips and arm.
I used the strongest barriers available on the architectures, so if the future analysis show that it is excessive, the barriers could be relaxed. Still, it is unlikely that it is meaningful to run IB on 32bit ARM or current MIPS machines, so the change is to make WITH_OFED to pass tinderbox.
Sponsored by: Mellanox Technologies Reviewed by: hselasky Differential revision: https://reviews.freebsd.org/D13329
MFC r303505: sdp: Use an mbufq for received control packets.
This is simpler than the hand-rolled queue, and fixes a use-after-free.
Sponsored by: EMC / Isilon Storage Division
MFC r303506: sdp: Destroy the PCB lock before freeing to the zone.
Sponsored by: EMC / Isilon Storage Division
MFC r303512: sdp: Use malloc(9) instead of the Linux compat layer.
SDP transmit and receive rings are always created in a sleepable context, so we can use M_WAITOK and remove error checks.
Sponsored by: EMC / Isilon Storage Division
MFC r303513: sdp: Destroy the RDMA ID after destroying the connection's queue pair.
This is the ordering documented by rdma_destroy_qp(). Also add a useful KASSERT to sdp_pcbfree().
Sponsored by: EMC / Isilon Storage Division
MFC r303646: ipoib: Bound the number of egress mbufs buffered during pathrec lookups.
In pathological situations where the master subnet manager becomes unresponsive for an extended period, we may otherwise end up queuing all of the system's mbufs while waiting for a response to a path record lookup.
This addresses the same issue as commit 1e85b806f9 in Linux.
Reviewed by: cem, ngie Sponsored by: EMC / Isilon Storage Division
MFC r329222: Import the mthca kernel side infiniband driver from Linux 4.9 and fix compilation under FreeBSD. The mthca driver was temporarily removed as part of the Linux 4.9 RoCE/infinband upgrade.
Top commit in Linux source tree: 69973b830859bc6529a7a0468ba0d80ee5117826
Sponsored by: Mellanox Technologies
MFC r320418. Note that the socket lock _is_ the same as so_rcv's lock in 11 and this is a no-op in this branch.
Sponsored by: Chelsio Communications
MFC r323082: cxgbe/iw_cxgbe: Set TCP_NODELAY before initiating connection so that t4_tom picks it up right away. This is less work than waiting for the connection to be established before applying the setting.
Sponsored by: Chelsio Communications
|
#
331722 |
|
29-Mar-2018 |
eadler |
Revert r330897:
This was intended to be a non-functional change. It wasn't. The commit message was thus wrong. In addition it broke arm, and merged crypto related code.
Revert with prejudice.
This revert skips files touched in r316370 since that commit was since MFCed. This revert also skips files that require $FreeBSD$ property changes.
Thank you to those who helped me get out of this mess including but not limited to gonzo, kevans, rgrimes.
Requested by: gjb (re)
|
#
330897 |
|
14-Mar-2018 |
eadler |
Partial merge of the SPDX changes
These changes are incomplete but are making it difficult to determine what other changes can/should be merged.
No objections from: pfg
|
#
329017 |
|
08-Feb-2018 |
np |
iw_cxgbe: Manually backport changes related to QP flush. This fixes a panic where poll_cq sees an empty RQ while processing an incoming SEND for a QP that is being taken down.
This is a direct commit to stable/11.
Sponsored by: Chelsio Communications
|
#
318798 |
|
24-May-2017 |
np |
MFC r311880, r314167, r316118, r316571, r316573, r316580, r316936-r316937, r316940, and r317410.
r311880: The iw_cxgb and iw_cxgbe drivers should not use a FreeBSD device_t where a linuxkpi style device is expected. If OFED/linuxkpi actually starts using this field then we'll have to figure out whether to create fake devices for these drivers or have linuxkpi deal with NULL device.
This mismatch was first reported as part of D6585.
r314167: cxgbe/iw_cxgbe: Minor changes for T6.
r316118: cxgbe/iw_cxgbe: T6 has no limit on the amount of memory that can be registered in one ib_reg_phys_mr.
r316571: cxgbe/iw_cxgbe: Remove bad cast that resulted in incorrect length for memory regions larger than 4GB.
r316573: cxgbe/iw_cxgbe: Replace a magic constant with something more readable (and accurate).
T4 and later have an extra bit for page shift so the maximum page size is 8TB (shift of 12 + 31) instead of 128MB (12 + 15). This saves space in the chip's PBL (physical buffer list) when registering very large memory regions.
r316580: cxgbe/iw_cxgbe: Remove another bad cast. This should have been included in r316571.
r316936: cxgbe/iw_cxgbe: hw supports 64K (not 32K) Protection Domains.
r316937: cxgbe/iw_cxgbe: Report accurate page_size_cap in ib_query_device.
r316940: cxgbe/iw_cxgbe: Report the actual values of various parameters as configured by the firmware.
r317410: cxgbe/iw_cxgbe: Pull in some updates to c4iw_wait_for_reply from the iw_cxgb4 Linux driver.
Sponsored by: Chelsio Communications
|
#
316122 |
|
29-Mar-2017 |
np |
MFC r315201, r315920, r315921, r315922, r316008, and r316062.
r315201: cxgbe(4): Fix an always-true assertion (reported by PVS-Studio).
sys/dev/cxgbe/t4_main.c: PVS-Studio: Expression is Always True (CWE-571) (3)
r315920: cxgbe/iw_cxgbe: c4iw_connect should always returns a -ve errno on failure.
r315921:
cxgbe/iw_cxgbe: alloc_ep expects a gfp_t, and it's always ok to sleep during alloc_ep.
r315922: cxgbe/iw_cxgbe: allocations that use GFP_KERNEL (which is M_WAITOK on FreeBSD) cannot fail.
r316008: cxgbe/iw_cxgbe: Remove unused code.
r316062: cxgbe/iw_cxgbe: Defer the handling of error CQEs and RDMA_TERMINATE to the thread that deals with socket state changes. This eliminates various bad races with the ithread.
|
#
314775 |
|
06-Mar-2017 |
np |
MFC r314509 and r314578.
r314509: cxgbe/iw_cxgbe: Do not check the size of the memory region being registered. T4/5/6 have no internal limit on this size. This is probably a copy paste from the T3 iw_cxgb driver.
r314578: cxgbe/iw_cxgbe: Implement sq/rq drain operation.
ULPs can set a qp's state to ERROR and then post a work request on the sq and/or rq. When the reply for that work request comes back it is guaranteed that all previous work requests posted on that queue have been drained.
Sponsored by: Chelsio Communications
|
#
314605 |
|
03-Mar-2017 |
np |
MFC r314400:
cxgbe/iw_cxgbe: fix various double-close panics with iWARP sockets.
Sockets representing the TCP endpoints for iWARP connections are allocated by the ibcore module. Before this revision they were closed either by the ibcore module or the iw_cxgbe hardware driver depending on the state transitions during connection teardown. This is error prone and there were cases where both iw_cxgbe and ibcore closed the socket leading to double-free panics. The fix is to let ibcore close the sockets it creates and never do it in the driver.
- Use sodisconnect instead of soclose (preceded by solinger = 0) in the driver to tear down an RDMA connection abruptly. This does what's intended without releasing the socket's fd reference.
- Close the socket in ibcore when the iWARP iw_cm_id is destroyed. This works for all kinds of sockets: clients that initiate connections, listeners, and sockets accepted off of listeners.
Sponsored by: Chelsio Communications
|
#
309450 |
|
02-Dec-2016 |
jhb |
MFC 304854: cxgbe/iw_cxgbe: Various fixes to the iWARP driver.
- Return appropriate error code instead of ENOMEM when sosend() fails in send_mpa_req. - Fix for problematic race during destroy_qp. - Abortive close in the failure of send_mpa_reject() instead of normal close. - Remove the unnecessary doorbell flowcontrol logic.
Sponsored by: Chelsio Communications
|
#
302408 |
|
07-Jul-2016 |
gjb |
Copy head@r302406 to stable/11 as part of the 11.0-RELEASE cycle. Prune svn:mergeinfo from the new branch, as nothing has been merged here.
Additional commits post-branch will follow.
Approved by: re (implicit) Sponsored by: The FreeBSD Foundation |
#
302339 |
|
04-Jul-2016 |
np |
cxgbe(4): Changes to the CPL-handler registration mechanism and code related to "shared" CPLs.
a) Combine t4_set_tcb_field and t4_set_tcb_field_rpl into a single function. Allow callers to direct the response to any iq. Tidy up set_ulp_mode_iscsi while there to use names from t4_tcb.h instead of magic constants.
b) Remove all CPL handler tables from struct adapter. This reduces its size by around 2KB. All handlers are now registered at MOD_LOAD instead of attach or some kind of initialization/activation. The registration functions do not need an adapter parameter any more.
c) Add per-iq handlers to deal with CPLs whose destination cannot be determined solely from the opcode. There are 2 such CPLs in use right now: SET_TCB_RPL and L2T_WRITE_RPL. The base driver continues to send filter and L2T_WRITEs over the mgmtq and solicits the reply on fwq. t4_tom (including the DDP code) now uses the port's ctrlq to send L2T_WRITEs and SET_TCB_FIELDs and solicits the reply on an ofld_rxq. fwq and ofld_rxq have different handlers that know what kind of tid to expect in the reply. Update t4_write_l2e and callers to to support any wrq/iq combination.
Approved by: re@ (kib@) Sponsored by: Chelsio Communications
|
#
300875 |
|
27-May-2016 |
np |
iw_cxgbe: Use vmem(9) to manage PBL and RQT allocations.
Submitted by: Krishnamraju Eraparaju at Chelsio Reviewed by: Steve Wise Sponsored by: Chelsio Communications
|
#
299468 |
|
11-May-2016 |
hselasky |
The idr_for_each() function is now part of the LinuxKPI. Use the LinuxKPI's idr_for_each() function instead of the local one to avoid compilation issues.
Discussed with: np @ MFC after: 1 week
|
#
297124 |
|
20-Mar-2016 |
np |
iw_cxgbe/libcxgb4: Pull in many applicable fixes from the upstream Linux iWARP driver and userspace library to the FreeBSD iw_cxgbe and libcxgb4.
This commit includes internal changesets 6785 8111 8149 8478 8617 8648 8650 9110 9143 9440 9511 9894 10164 10261 10450 10980 10981 10982 11730 11792 12218 12220 12222 12223 12225 12226 12227 12228 12229 12654.
Submitted by: Krishnamraju Eraparaju @ Chelsio Sponsored by: Chelsio Communications
|
#
296478 |
|
07-Mar-2016 |
np |
cxgbe(4): Add a struct sge_params to store per-adapter SGE parameters. Move the code that reads all the parameters to t4_init_sge_params in the shared code. Use these per-adapter values instead of globals.
Sponsored by: Chelsio Communications
|
#
294610 |
|
22-Jan-2016 |
np |
Fix for iWARP servers that listen on INADDR_ANY.
The iWARP Connection Manager (CM) on FreeBSD creates a TCP socket to represent an iWARP endpoint when the connection is over TCP. For servers the current approach is to invoke create_listen callback for each iWARP RNIC registered with the CM. This doesn't work too well for INADDR_ANY because a listen on any TCP socket already notifies all hardware TOEs/RNICs of the new listener. This patch fixes the server side of things for FreeBSD. We've tried to keep all these modifications in the iWARP/TCP specific parts of the OFED infrastructure as much as possible.
Submitted by: Krishnamraju Eraparaju @ Chelsio (with design inputs from Steve Wise) Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D4801
|
#
289578 |
|
19-Oct-2015 |
hselasky |
Merge LinuxKPI changes from DragonflyBSD: - Define the kref structure identical to the one found in Linux. - Update clients referring inside the kref structure. - Implement kref_sub() for FreeBSD.
Reviewed by: np @ Sponsored by: Mellanox Technologies
|
#
278886 |
|
17-Feb-2015 |
hselasky |
Update the infiniband stack to Mellanox's OFED version 2.1.
Highlights: - Multiple verbs API updates - Support for RoCE, RDMA over ethernet
All hardware drivers depending on the common infiniband stack has been updated aswell.
Discussed with: np @ Sponsored by: Mellanox Technologies MFC after: 1 month
|
#
273135 |
|
15-Oct-2014 |
hselasky |
Update the OFED Linux compatibility layer and Mellanox hardware driver(s):
- Properly name an inclusion guard - Fix compile warnings regarding unsigned enums - Add two new sysctl nodes - Remove all empty linux header files - Make an error printout more verbose - Use "mod_delayed_work()" instead of cancelling and starting a timeout. - Implement more Linux scatterlist functions.
MFC after: 3 days Sponsored by: Mellanox Technologies
|
#
256694 |
|
17-Oct-2013 |
np |
iw_cxgbe: iWARP driver for Chelsio T4/T5 chips. This is a straight port of the iw_cxgb4 found in OFED distributions.
Obtained from: Chelsio
|