[ewg] [PATCH OFED-1.4.1] openibd: handle NFS-RDMA deps

Jon Mason jon at opengridcomputing.com
Thu Apr 23 07:48:23 PDT 2009


On Thu, Apr 23, 2009 at 09:57:52AM +0300, Vladimir Sokolovsky wrote:
> 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?

Good idea.  Please apply.

Thanks,
Jon

> 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