From 94ba2a3e9b29b43c71e4229f4737b086aa1c99c9 Mon Sep 17 00:00:00 2001 From: Adit Ranadive Date: Wed, 2 Nov 2016 14:22:40 -0700 Subject: [PATCH] compat-rdma: Build support for PVRDMA driver in OFED 4.8 Modified the build scripts to compile the PVRDMA driver. I tested this by compiling and installing the compat-rdma stuff in RHEL 7.2. Signed-off-by: Adit Ranadive --- compat-rdma.spec | 1 + configure | 26 ++++++++++++++++++++++++++ makefile | 1 + ofed_scripts/openibd | 12 +++++++++++- 4 files changed, 39 insertions(+), 1 deletion(-) diff --git a/compat-rdma.spec b/compat-rdma.spec index 1fbe30c..87ff9ee 100755 --- a/compat-rdma.spec +++ b/compat-rdma.spec @@ -58,6 +58,7 @@ %define build_ocrdma %(if ( echo %{configure_options} | grep "with-ocrdma-mod" > /dev/null ); then echo -n '1'; else echo -n '0'; fi) %define build_ibp_server %(if ( echo %{configure_options} | grep "with-ibp-server-mod" > /dev/null ); then echo -n '1'; else echo -n '0'; fi) %define build_ibscif %(if ( echo %{configure_options} | grep "with-ibscif-mod" > /dev/null ); then echo -n '1'; else echo -n '0'; fi) +%define build_pvrdma %(if ( echo %{configure_options} | grep "with-pvrdma-mod" > /dev/null ); then echo -n '1'; else echo -n '0'; fi) %{!?LIB_MOD_DIR: %define LIB_MOD_DIR /lib/modules/%{KVERSION}/updates} diff --git a/configure b/configure index 91d8e8e..5ef06a9 100755 --- a/configure +++ b/configure @@ -187,6 +187,9 @@ Usage: `basename $0` [options] --with-nfsrdma-mod make CONFIG_SUNRPC_XPRT_RDMA=m [no] --without-nfsrdma-mod [yes] + --with-pvrdma-mod make CONFIG_INFINIBAND_PVRDMA=m [no] + --without-pvrdma-mod [yes] + --help - print out options @@ -709,6 +712,12 @@ main() CONFIG_SUNRPC_XPRT_RDMA_CLIENT= CONFIG_SUNRPC_XPRT_RDMA_SERVER= ;; + --with-pvrdma-mod) + CONFIG_INFINIBAND_PVRDMA="m" + ;; + --without-pvrdma-mod) + CONFIG_INFINIBAND= + ;; -h | --help) usage exit 0 @@ -765,6 +774,7 @@ if [ $ARCH != "x86_64" ]; then CONFIG_INFINIBAND_QIB= CONFIG_INFINIBAND_RDMAVT= CONFIG_INFINIBAND_RXE= + CONFIG_INFINIBAND_PVRDMA= fi SKIP_AUTOCONF=${SKIP_AUTOCONF:-0} @@ -821,6 +831,7 @@ CONFIG_SCSI_CXGB4_ISCSI=${CONFIG_SCSI_CXGB4_ISCSI:-''} CONFIG_INFINIBAND_NES=${CONFIG_INFINIBAND_NES:-''} CONFIG_INFINIBAND_OCRDMA=${CONFIG_INFINIBAND_OCRDMA:-''} CONFIG_BE2NET=${CONFIG_BE2NET:-''} +CONFIG_INFINIBAND_PVRDMA=${CONFIG_INFINIBAND_PVRDMA:-''} CONFIG_SUNRPC_XPRT_RDMA=${CONFIG_SUNRPC_XPRT_RDMA:-''} CONFIG_SUNRPC_XPRT_RDMA_CLIENT=${CONFIG_SUNRPC_XPRT_RDMA_CLIENT:-''} @@ -865,6 +876,12 @@ fi touch .xeon_phi_applied fi + if [[ ! -e .pvrdma_applied && "X$CONFIG_INFINIBAND_PVRDMA" == "Xm" ]]; then + echo ".pvrdma_applied does not exist. running ofed-patch.sh for pvrdma" + ex ${CWD}/ofed_scripts/ofed_patch.sh --without-git --without-quilt --with-patchdir=tech-preview/pvrdma + touch .pvrdma_applied + fi + # Create configure.mk /bin/rm -f ${CWD}/${CONFIG} cat >> ${CWD}/${CONFIG} << EOFCONFIG @@ -935,6 +952,7 @@ CONFIG_SCSI_CXGB4_ISCSI=${CONFIG_SCSI_CXGB4_ISCSI} CONFIG_INFINIBAND_NES=${CONFIG_INFINIBAND_NES} CONFIG_INFINIBAND_OCRDMA=${CONFIG_INFINIBAND_OCRDMA} CONFIG_BE2NET=${CONFIG_BE2NET} +CONFIG_INFINIBAND_PVRDMA=${CONFIG_INFINIBAND_PVRDMA} CONFIG_SUNRPC_XPRT_RDMA=${CONFIG_SUNRPC_XPRT_RDMA} CONFIG_SUNRPC_XPRT_RDMA_CLIENT=${CONFIG_SUNRPC_XPRT_RDMA_CLIENT} @@ -1269,6 +1287,11 @@ if [ "X${CONFIG_SUNRPC_XPRT_RDMA_SERVER}" == "Xm" ]; then else DEFINE_SUNRPC_XPRT_RDMA_SERVER="/* CONFIG_SUNRPC_XPRT_RDMA_SERVER is not set */" fi +if [ "X${CONFIG_INFINIBAND_PVRDMA}" == "Xm" ]; then + DEFINE_INFINIBAND_PVRDMA="#undef CONFIG_INFINIBAND_PVRDMA\n#define CONFIG_INFINIBAND_PVRDMA 1" +else + DEFINE_INFINIBAND_PVRDMA="#undef CONFIG_INFINIBAND_PVRDMA" +fi cat > ${AUTOCONF_H} << EOFAUTOCONF #ifndef __OFED_BUILD__ @@ -1294,6 +1317,7 @@ $(echo -e "${DEFINE_CHELSIO_T4}" | grep -v undef) $(echo -e "${DEFINE_INFINIBAND_NES}" | grep -v undef) $(echo -e "${DEFINE_INFINIBAND_OCRDMA}" | grep -v undef) $(echo -e "${DEFINE_BE2NET}" | grep -v undef) +$(echo -e "${DEFINE_INFINIBAND_PVRDMA}" | grep -v undef) $(echo -e "${DEFINE_SUNRPC_XPRT_RDMA}" | grep -v undef) $(echo -e "${DEFINE_SUNRPC_XPRT_RDMA_CLIENT}" | grep -v undef) @@ -1393,6 +1417,7 @@ $(echo -e "${DEFINE_INFINIBAND_AMSO1100}" | grep -v undef) #undef CONFIG_INFINIBAND_NES_DEBUG #undef CONFIG_INFINIBAND_OCRDMA #undef CONFIG_BE2NET +#undef CONFIG_INFINIBAND_PVRDMA #undef CONFIG_SUNRPC_XPRT_RDMA #undef CONFIG_SUNRPC_XPRT_RDMA_CLIENT @@ -1432,6 +1457,7 @@ $(echo -e "${DEFINE_CHELSIO_T4}") $(echo -e "${DEFINE_INFINIBAND_NES}") $(echo -e "${DEFINE_INFINIBAND_OCRDMA}") $(echo -e "${DEFINE_BE2NET}") +$(echo -e "${DEFINE_INFINIBAND_PVRDMA}") $(echo -e "${DEFINE_SUNRPC_XPRT_RDMA}") $(echo -e "${DEFINE_SUNRPC_XPRT_RDMA_CLIENT}") diff --git a/makefile b/makefile index 53643ae..aee4e5a 100644 --- a/makefile +++ b/makefile @@ -143,6 +143,7 @@ kernel: $(COMPAT_CONFIG) $(COMPAT_AUTOCONF) CONFIG_INFINIBAND_ISERT=$(CONFIG_INFINIBAND_ISERT) \ CONFIG_INFINIBAND_USNIC=$(CONFIG_INFINIBAND_USNIC) \ CONFIG_INFINIBAND_HFI1=$(CONFIG_INFINIBAND_HFI1) \ + CONFIG_INFINIBAND_PVRDMA=$(CONFIG_INFINIBAND_PVRDMA) \ LINUXINCLUDE=' \ -D__OFED_BUILD__ \ -D__KERNEL__ \ diff --git a/ofed_scripts/openibd b/ofed_scripts/openibd index e2c5782..389c28e 100644 --- a/ofed_scripts/openibd +++ b/ofed_scripts/openibd @@ -275,7 +275,7 @@ UNLOAD_MODULES="$UNLOAD_MODULES rds_rdma rds_tcp rds ib_ucm kdapl ib_srp_target UNLOAD_MODULES="$UNLOAD_MODULES rdma_ucm rdma_cm iw_cm ib_cm ib_local_sa findex" UNLOAD_MODULES="$UNLOAD_MODULES ib_sa ib_uverbs ib_umad ib_mad ib_core ib_addr" -STATUS_MODULES="rdma_ucm ib_rds rds rds_rdma rds_tcp ib_srpt ib_srp qlgc_vnic ib_sdp rdma_cm ib_addr ib_local_sa findex ib_ipoib ib_ehca ib_ipath ipath_core mlx4_core mlx4_ib mlx4_en mlx5_core mlx5_ib ib_mthca ib_uverbs ib_umad ib_ucm ib_sa ib_cm ib_mad ib_core iw_cxgb3 iw_cxgb4 iw_nes" +STATUS_MODULES="rdma_ucm ib_rds rds rds_rdma rds_tcp ib_srpt ib_srp qlgc_vnic ib_sdp rdma_cm ib_addr ib_local_sa findex ib_ipoib ib_ehca ib_ipath ipath_core mlx4_core mlx4_ib mlx4_en mlx5_core mlx5_ib ib_mthca ib_uverbs ib_umad ib_ucm ib_sa ib_cm ib_mad ib_core iw_cxgb3 iw_cxgb4 iw_nes pvrdma" STATUS_MODULES="$STATUS_MODULES ib_qib ocrdma" if (modinfo scsi_transport_srp 2>/dev/null | grep depends: | grep -q compat 2>/dev/null) || @@ -959,6 +959,16 @@ start() RC=$[ $RC + $my_rc ] fi + # Load VMware Paravirtual RDMA driver + if [ "X${PVRDMA_LOAD}" == "Xyes" ]; then + load_module pvrdma + my_rc=$? + if [ $my_rc -ne 0 ]; then + echo_failure $"Loading VMware Paravirtual RDMA driver: " + fi + RC=$[ $RC + $my_rc ] + fi + ib_set_node_desc > /dev/null 2>&1 & load_module ib_umad -- 2.41.0