]> git.openfabrics.org - ~aditr/compat-rdma.git/commitdiff
compat-rdma: Build support for PVRDMA driver in OFED 4.8
authorAdit Ranadive <aditr@vmware.com>
Wed, 2 Nov 2016 21:22:40 +0000 (14:22 -0700)
committerAdit Ranadive <aditr@vmware.com>
Wed, 2 Nov 2016 21:23:16 +0000 (14:23 -0700)
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 <aditr@vmware.com>
compat-rdma.spec
configure
makefile
ofed_scripts/openibd

index 1fbe30ca1e36cea9d760906e2f42cd338bb77f3d..87ff9ee9f98a4d66438db03a1d4d4aab78054676 100755 (executable)
@@ -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}
 
index 91d8e8e825aead10cd60af92498d7cba95601ab2..5ef06a9e7f5138b714eaba72f9ea1868ee815092 100755 (executable)
--- 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}")
index 53643ae7a89d43c2807edb99177ae8e6079b3e85..aee4e5a6d6d472a7f0b75c9842bbda45370ff625 100644 (file)
--- 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__ \
index e2c578217e6a4a3971123c8e48f69943d3fdb92a..389c28e623d5a4a19a80cac52f6af83cc3dc21b3 100644 (file)
@@ -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