summaryrefslogtreecommitdiffstats
path: root/share
diff options
context:
space:
mode:
authorhselasky <hselasky@FreeBSD.org>2018-03-30 18:06:29 +0000
committerhselasky <hselasky@FreeBSD.org>2018-03-30 18:06:29 +0000
commit9201b6f6d363e31c394583faab87ab462e02077a (patch)
tree4d4d0844116e01e2d695e4df4fe649ced1640f1f /share
parent1ceba5b8ec12236d589d4f245412fbcca7c16e3d (diff)
downloadFreeBSD-src-9201b6f6d363e31c394583faab87ab462e02077a.zip
FreeBSD-src-9201b6f6d363e31c394583faab87ab462e02077a.tar.gz
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
Diffstat (limited to 'share')
-rw-r--r--share/mk/bsd.libnames.mk7
-rw-r--r--share/mk/src.libnames.mk56
2 files changed, 36 insertions, 27 deletions
diff --git a/share/mk/bsd.libnames.mk b/share/mk/bsd.libnames.mk
index 07e7a4c..e09b2a6 100644
--- a/share/mk/bsd.libnames.mk
+++ b/share/mk/bsd.libnames.mk
@@ -95,6 +95,11 @@ LIBKICONV?= ${DESTDIR}${LIBDIR_BASE}/libkiconv.a
LIBKRB5?= ${DESTDIR}${LIBDIR_BASE}/libkrb5.a
LIBKVM?= ${DESTDIR}${LIBDIR_BASE}/libkvm.a
LIBL?= ${DESTDIR}${LIBDIR_BASE}/libl.a
+LIBIBCM?= ${DESTDIR}${LIBDIR_BASE}/libibcm.a
+LIBIBMAD?= ${DESTDIR}${LIBDIR_BASE}/libibmad.a
+LIBIBNETDISC?= ${LIBDESTDIR}${LIBDIR_BASE}/libibnetdisc.
+LIBIBUMAD?= ${DESTDIR}${LIBDIR_BASE}/libibumad.a
+LIBIBVERBS?= ${DESTDIR}${LIBDIR_BASE}/libibverbs.a
LIBLN?= "don't use LIBLN, use LIBL"
LIBLZMA?= ${DESTDIR}${LIBDIR_BASE}/liblzma.a
LIBM?= ${DESTDIR}${LIBDIR_BASE}/libm.a
@@ -104,9 +109,9 @@ LIBMEMSTAT?= ${DESTDIR}${LIBDIR_BASE}/libmemstat.a
LIBMENU?= ${DESTDIR}${LIBDIR_BASE}/libmenu.a
LIBMILTER?= ${DESTDIR}${LIBDIR_BASE}/libmilter.a
LIBMLX4?= ${DESTDIR}${LIBDIR_BASE}/libmlx4.a
+LIBMLX5?= ${DESTDIR}${LIBDIR_BASE}/libmlx5.a
LIBMP?= ${DESTDIR}${LIBDIR_BASE}/libmp.a
LIBMT?= ${DESTDIR}${LIBDIR_BASE}/libmt.a
-LIBMTHCA?= ${DESTDIR}${LIBDIR_BASE}/libmthca.a
LIBNANDFS?= ${DESTDIR}${LIBDIR_BASE}/libnandfs.a
LIBNCURSES?= ${DESTDIR}${LIBDIR_BASE}/libncurses.a
LIBNCURSESW?= ${DESTDIR}${LIBDIR_BASE}/libncursesw.a
diff --git a/share/mk/src.libnames.mk b/share/mk/src.libnames.mk
index ac3f9c2..3064027 100644
--- a/share/mk/src.libnames.mk
+++ b/share/mk/src.libnames.mk
@@ -190,18 +190,16 @@ _LIBRARIES+= \
_LIBRARIES+= \
cxgb4 \
ibcm \
- ibcommon \
ibmad \
- ibsdp \
+ ibnetdisc \
ibumad \
ibverbs \
mlx4 \
- mthca \
- opensm \
- osmcomp \
- osmvendor \
+ mlx5 \
rdmacm \
-
+ osmcomp \
+ opensm \
+ osmvendor
.endif
# Each library's LIBADD needs to be duplicated here for static linkage of
@@ -325,17 +323,21 @@ _DP_zfs= md pthread umem util uutil m nvpair avl bsdxml geom nvpair z \
zfs_core
_DP_zfs_core= nvpair
_DP_zpool= md pthread z nvpair avl umem
+
+# OFED support
.if ${MK_OFED} != "no"
_DP_cxgb4= ibverbs pthread
_DP_ibcm= ibverbs
-_DP_ibmad= ibcommon ibumad
-_DP_ibumad= ibcommon
+_DP_ibmad= ibumad
+_DP_ibnetdisc= osmcomp ibmad ibumad
+_DP_ibumad=
+_DP_ibverbs=
_DP_mlx4= ibverbs pthread
-_DP_mthca= ibverbs pthread
-_DP_opensm= pthread
-_DP_osmcomp= pthread
-_DP_osmvendor= ibumad opensm osmcomp pthread
+_DP_mlx5= ibverbs pthread
_DP_rdmacm= ibverbs
+_DP_osmcomp= pthread
+_DP_opensm= pthread
+_DP_osmvendor= ibumad pthread
.endif
# Define special cases
@@ -473,19 +475,21 @@ LIBUUTILDIR= ${OBJTOP}/cddl/lib/libuutil
LIBZFSDIR= ${OBJTOP}/cddl/lib/libzfs
LIBZFS_COREDIR= ${OBJTOP}/cddl/lib/libzfs_core
LIBZPOOLDIR= ${OBJTOP}/cddl/lib/libzpool
-LIBCXGB4DIR= ${OBJTOP}/contrib/ofed/usr.lib/libcxgb4
-LIBIBCMDIR= ${OBJTOP}/contrib/ofed/usr.lib/libibcm
-LIBIBCOMMONDIR= ${OBJTOP}/contrib/ofed/usr.lib/libibcommon
-LIBIBMADDIR= ${OBJTOP}/contrib/ofed/usr.lib/libibmad
-LIBIBUMADDIR= ${OBJTOP}/contrib/ofed/usr.lib/libibumad
-LIBIBVERBSDIR= ${OBJTOP}/contrib/ofed/usr.lib/libibverbs
-LIBMLX4DIR= ${OBJTOP}/contrib/ofed/usr.lib/libmlx4
-LIBMTHCADIR= ${OBJTOP}/contrib/ofed/usr.lib/libmthca
-LIBOPENSMDIR= ${OBJTOP}/contrib/ofed/usr.lib/libopensm
-LIBOSMCOMPDIR= ${OBJTOP}/contrib/ofed/usr.lib/libosmcomp
-LIBOSMVENDORDIR= ${OBJTOP}/contrib/ofed/usr.lib/libosmvendor
-LIBRDMACMDIR= ${OBJTOP}/contrib/ofed/usr.lib/librdmacm
-LIBIBSDPDIR= ${OBJTOP}/contrib/ofed/usr.lib/libsdp
+
+# OFED support
+LIBCXGB4DIR= ${OBJTOP}/contrib/ofed/libcxgb4
+LIBIBCMDIR= ${OBJTOP}/contrib/ofed/libibcm
+LIBIBMADDIR= ${OBJTOP}/contrib/ofed/libibmad
+LIBIBNETDISCDIR=${OBJTOP}/contrib/ofed/libibnetdisc
+LIBIBUMADDIR= ${OBJTOP}/contrib/ofed/libibumad
+LIBIBVERBSDIR= ${OBJTOP}/contrib/ofed/libibverbs
+LIBMLX4DIR= ${OBJTOP}/contrib/ofed/libmlx4
+LIBMLX5DIR= ${OBJTOP}/contrib/ofed/libmlx5
+LIBRDMACMDIR= ${OBJTOP}/contrib/ofed/librdmacm
+LIBOSMCOMPDIR= ${OBJTOP}/contrib/ofed/opensm/complib
+LIBOPENSMDIR= ${OBJTOP}/contrib/ofed/opensm/libopensm
+LIBOSMVENDORDIR=${OBJTOP}/contrib/ofed/opensm/libvendor
+
LIBDIALOGDIR= ${OBJTOP}/gnu/lib/libdialog
LIBGCOVDIR= ${OBJTOP}/gnu/lib/libgcov
LIBGOMPDIR= ${OBJTOP}/gnu/lib/libgomp
OpenPOWER on IntegriCloud