[ewg] [PATCH OFED-1.4.1] openibd: handle NFS-RDMA deps
Vladimir Sokolovsky
vlad at dev.mellanox.co.il
Wed Apr 22 23:57:52 PDT 2009
Jon Mason wrote:
> There are new dependencies on the ib_core module from the NFS-RDMA
> modules. Since the NFS-RDMA modules are not unloaded in the current
> version, the ib_core module cannot be removed and the openibd stop will
> fail.
>
> By stopping all of the NFS services and unloading any dependent modules,
> the ib_core module can be unloaded and openibd can be successfully
> stopped.
>
> Signed-Off-By: Jon Mason <jon at opengridcomputing.com>
> ---
>
> diff --git a/ofed_scripts/openibd b/ofed_scripts/openibd
> index 4a79e2c..777a891 100755
> --- a/ofed_scripts/openibd
> +++ b/ofed_scripts/openibd
> @@ -293,10 +293,10 @@ GEN1_UNLOAD_MODULES="ib_srp_target scsi_target ib_srp kdapltest_module ib_kdapl
> UNLOAD_MODULES="ib_mthca mlx4_ib ib_ipath ipath_core ib_ehca iw_nes iw_cxgb3 cxgb3"
> UNLOAD_MODULES="$UNLOAD_MODULES ib_ipoib ib_madeye ib_rds"
> UNLOAD_MODULES="$UNLOAD_MODULES rds ib_ucm kdapl ib_srp_target scsi_target ib_srpt ib_srp ib_iser ib_sdp"
> -UNLOAD_MODULES="$UNLOAD_MODULES rdma_ucm rdma_cm ib_addr ib_cm ib_local_sa findex"
> +UNLOAD_MODULES="$UNLOAD_MODULES rdma_ucm svcrdma xprtrdma rdma_cm ib_addr ib_cm ib_local_sa findex"
> UNLOAD_MODULES="$UNLOAD_MODULES ib_sa ib_uverbs ib_umad ib_mad ib_core"
>
> -STATUS_MODULES="rdma_ucm ib_rds rds 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 ib_mthca ib_uverbs ib_umad ib_ucm ib_sa ib_cm ib_mad ib_core iw_cxgb3 iw_nes"
> +STATUS_MODULES="rdma_ucm ib_rds rds ib_srpt ib_srp qlgc_vnic ib_sdp svcrdma xprtrdma rdma_cm ib_addr ib_local_sa findex ib_ipoib ib_ehca ib_ipath ipath_core mlx4_core mlx4_ib mlx4_en ib_mthca ib_uverbs ib_umad ib_ucm ib_sa ib_cm ib_mad ib_core iw_cxgb3 iw_nes"
>
> ipoib_ha_pidfile=/var/run/ipoib_ha.pid
> srp_daemon_pidfile=/var/run/srp_daemon.pid
> @@ -1297,11 +1297,28 @@ stop()
> fi
> fi
>
> - if [ -d /sys/class/infiniband_qlgc_vnic/ ]; then
> - if [ -x /etc/init.d/qlgc_vnic ]; then
> + if [ -d /sys/class/infiniband_qlgc_vnic/ ]; then
> + if [ -x /etc/init.d/qlgc_vnic ]; then
> /etc/init.d/qlgc_vnic stop 2>&1 1>/dev/null
> - fi
> fi
> + fi
> +
> + if [ -d /sys/module/nfs ]; then
> + rmmod nfs > /dev/null 2>&1
> + fi
> +
> + if [ -d /sys/module/nfsd ]; then
> + if [ -x /etc/init.d/nfsserver ]; then
> + #For SLES
> + /etc/init.d/nfsserver stop
> + else
> + #For RHEL
> + /etc/init.d/rpcidmapd stop
> + umount /proc/fs/nfsd
> + fi
> + /etc/init.d/nfs stop
> + rmmod nfsd > /dev/null 2>&1
> + fi
>
> # Unload modules
> if [ "$UNLOAD_MODULES" != "" ]; then
Hi Jon,
I want to propose the following patch instead, it will unload nfs services when svcrdma or xprtrdma modules are loaded.
What do you think?
diff --git a/ofed_scripts/openibd b/ofed_scripts/openibd
index 4a79e2c..bfe446b 100755
--- a/ofed_scripts/openibd
+++ b/ofed_scripts/openibd
@@ -293,10 +293,10 @@ GEN1_UNLOAD_MODULES="ib_srp_target scsi_target ib_srp kdapltest_module ib_kdapl
UNLOAD_MODULES="ib_mthca mlx4_ib ib_ipath ipath_core ib_ehca iw_nes iw_cxgb3 cxgb3"
UNLOAD_MODULES="$UNLOAD_MODULES ib_ipoib ib_madeye ib_rds"
UNLOAD_MODULES="$UNLOAD_MODULES rds ib_ucm kdapl ib_srp_target scsi_target ib_srpt ib_srp ib_iser ib_sdp"
-UNLOAD_MODULES="$UNLOAD_MODULES rdma_ucm rdma_cm ib_addr ib_cm ib_local_sa findex"
+UNLOAD_MODULES="$UNLOAD_MODULES rdma_ucm svcrdma xprtrdma rdma_cm ib_addr ib_cm ib_local_sa findex"
UNLOAD_MODULES="$UNLOAD_MODULES ib_sa ib_uverbs ib_umad ib_mad ib_core"
-STATUS_MODULES="rdma_ucm ib_rds rds 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 ib_mthca ib_uverbs ib_umad ib_ucm
ib_sa ib_cm ib_mad ib_core iw_cxgb3 iw_nes"
+STATUS_MODULES="rdma_ucm ib_rds rds ib_srpt ib_srp qlgc_vnic ib_sdp svcrdma xprtrdma rdma_cm ib_addr ib_local_sa findex ib_ipoib ib_ehca ib_ipath ipath_core mlx4_core mlx4_ib mlx4_en ib_mthca
ib_uverbs ib_umad ib_ucm ib_sa ib_cm ib_mad ib_core iw_cxgb3 iw_nes"
ipoib_ha_pidfile=/var/run/ipoib_ha.pid
srp_daemon_pidfile=/var/run/srp_daemon.pid
@@ -1297,11 +1297,30 @@ stop()
fi
fi
- if [ -d /sys/class/infiniband_qlgc_vnic/ ]; then
- if [ -x /etc/init.d/qlgc_vnic ]; then
- /etc/init.d/qlgc_vnic stop 2>&1 1>/dev/null
- fi
- fi
+ if [ -d /sys/class/infiniband_qlgc_vnic/ ]; then
+ if [ -x /etc/init.d/qlgc_vnic ]; then
+ /etc/init.d/qlgc_vnic stop 2>&1 1>/dev/null
+ fi
+ fi
+
+ if is_module svcrdma || is_module xprtrdma; then
+ if [ -d /sys/module/nfs ]; then
+ rmmod nfs > /dev/null 2>&1
+ fi
+
+ if [ -d /sys/module/nfsd ]; then
+ if [ -x /etc/init.d/nfsserver ]; then
+ #For SLES
+ /etc/init.d/nfsserver stop
+ else
+ #For RHEL
+ /etc/init.d/rpcidmapd stop
+ umount /proc/fs/nfsd
+ fi
+ /etc/init.d/nfs stop
+ rmmod nfsd > /dev/null 2>&1
+ fi
+ fi
# Unload modules
if [ "$UNLOAD_MODULES" != "" ]; then
More information about the ewg
mailing list