diff options
Diffstat (limited to 'sys-infiniband/openib-files/files/openib')
-rw-r--r-- | sys-infiniband/openib-files/files/openib | 243 |
1 files changed, 0 insertions, 243 deletions
diff --git a/sys-infiniband/openib-files/files/openib b/sys-infiniband/openib-files/files/openib deleted file mode 100644 index b654831..0000000 --- a/sys-infiniband/openib-files/files/openib +++ /dev/null @@ -1,243 +0,0 @@ -#!/sbin/runscript -# Copyright 1999-2011 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/sys-infiniband/openib-files/files/openib,v 1.1 2011/06/30 22:02:03 alexxy Exp $ - -# Based on openibd script from openfabrics.org, -# Copyright (c) 2006 Mellanox Technologies. All rights reserved. -# Distributed under the terms of the GNU General Public License v2 - -depend() { - after hotplug - before net # init openib before starting any ipoib interfaces -} - -OPENIB_CONFDIR=${OPENIB_CONFDIR:-/etc/infiniband} - -if [[ -r ${OPENIB_CONFDIR}/openib.conf ]] ; then - . ${OPENIB_CONFDIR}/openib.conf -fi - -# Setting OpenIB start parameters -POST_LOAD_MODULES="" - -if [ "X${SDP_LOAD}" == "Xyes" ]; then - POST_LOAD_MODULES="$POST_LOAD_MODULES ib_sdp" - IPOIB_LOAD="yes" -fi - -IPOIB=0 -if [ "X${IPOIB_LOAD}" == "Xyes" ]; then - IPOIB=1 -fi - -if [ "X${SRP_LOAD}" == "Xyes" ]; then - POST_LOAD_MODULES="$POST_LOAD_MODULES ib_srp" -fi - -if [ "X${SRP_TARGET_LOAD}" == "Xyes" ]; then - POST_LOAD_MODULES="$POST_LOAD_MODULES ib_srp_target" -fi - -if [ "X${RDMA_CM_LOAD}" == "Xyes" ]; then - POST_LOAD_MODULES="$POST_LOAD_MODULES rdma_cm" -fi - -if [ "X${UCM_LOAD}" == "Xyes" ]; then - POST_LOAD_MODULES="$POST_LOAD_MODULES ib_ucm" -fi - -if [ "X${RDS_LOAD}" == "Xyes" ]; then - POST_LOAD_MODULES="$POST_LOAD_MODULES ib_rds" -fi - -if [ "X${ISER_LOAD}" == "Xyes" ]; then - POST_LOAD_MODULES="$POST_LOAD_MODULES ib_iser" -fi - -if [ "X${RDMA_UCM_LOAD}" == "Xyes" ]; then - POST_LOAD_MODULES="$POST_LOAD_MODULES rdma_ucm" -fi - -PRE_UNLOAD_MODULES="ib_rds ib_ucm kdapl ib_srp_target scsi_target ib_srp ib_iser ib_sdp rdma_ucm rdma_cm ib_addr ib_cm ib_local_sa findex" - -# W/A for unloading modules -POST_UNLOAD_MODULES="$PRE_UNLOAD_MODULES ib_ipoib ib_sa ib_uverbs ib_umad" -# ib_mthca ib_ipath - don't unload unless they are in openib.conf -[[ "${MTHCA_LOAD}" == "yes" ]] && \ - POST_UNLOAD_MODULES="$POST_UNLOAD_MODULES ib_mthca" -[[ "${IPATH_LOAD}" == "yes" ]] && \ - POST_UNLOAD_MODULES="$POST_UNLOAD_MODULES ib_ipath ipath_core" - -[[ "${MTHCA_LOAD}" == "yes" || "${IPATH_LOAD}" == "yes" ]] && \ - POST_UNLOAD_MODULES="$POST_UNLOAD_MODULES ib_mad ib_core" - -#STATUS_MODULES="rdma_ucm ib_rds ib_srp ib_sdp rdma_cm ib_addr ib_local_sa findex ib_ipoib ib_ipath ipath_core ib_mthca ib_uverbs ib_umad ib_ucm ib_sa ib_cm ib_mad ib_core" - - -# If module $1 is loaded return - 0 else - 1 -is_module() -{ - local RC - - /bin/lsmod | grep -w "$1" > /dev/null 2>&1 - RC=$? - - return $RC -} - -unload() -{ - # Unload module $1 - if is_module $mod; then - /sbin/modprobe -r $mod > /dev/null 2>&1 - if [ $? -ne 0 ]; then - # Try rmmod if modprobe failed: case that previous installation included more IB modules. - /sbin/rmmod $mod > /dev/null 2>&1 - if [ $? -ne 0 ]; then - ewarn "Failed to unload $mod" - return 1 - fi - fi - fi -} - -start() { - local RC=0 - ebegin "Initializing Infiniband" - eindent - - # Load Mellanox HCA driver if explicitly requested - # (however, it should be loaded automatically by udev) - - einfo "Loading HCA and Access Layer drivers" - - if [[ "${MTHCA_LOAD}" == "yes" ]]; then - /sbin/modprobe ib_mthca > /dev/null 2>&1 - RC=$[ $RC + $? ] - fi - if [[ "${IPATH_LOAD}" == "yes" ]]; then - /sbin/modprobe ib_ipath > /dev/null 2>&1 - RC=$[ $RC + $? ] - fi - - # Add node description to sysfs - IBSYSDIR="/sys/class/infiniband" - if [ -d ${IBSYSDIR} ]; then - declare -i hca_id=1 - for hca in ${IBSYSDIR}/*; do - if [ -e ${hca}/node_desc ]; then - echo -n "$(hostname -s) HCA-${hca_id}" >> ${hca}/node_desc - fi - let hca_id++ - done - fi - /sbin/modprobe ib_umad > /dev/null 2>&1 - RC=$[ $RC + $? ] - /sbin/modprobe ib_uverbs > /dev/null 2>&1 - RC=$[ $RC + $? ] - - if [ $IPOIB -eq 1 ]; then - # this section is not necessary if all ib-over-ib devices are - # aliased properly in /etc/modules.d/openib - einfo "loading ib_ipoib module" - /sbin/modprobe ib_ipoib > /dev/null 2>&1 - RC=$[ $RC + $? ] - if (( ! RC )); then - # start the ipoib devices automatically... - # this is probably a bad idea (the concept is taken from the - # original SUSE/Redhat-based initscript), and should be removed. - # But it works, and is not enabled by default. So I leave it here - # for second opinions. - local ibdevs=`rc-status -u -nc |egrep 'net\.ib[0-9a-zA-Z]+.*stopped' | awk '{print $1}'` - if [ -n "$ibdevs" ] ; then - einfo "starting ipoib devices" - for ibdev in $ibdevs; do - /etc/init.d/$ibdev start - done - fi - fi - fi - - # Devices for ib_umad and ib_uverbs should now have been created. - if [ ! -d /dev/infiniband/ ]; then - eerror "udev failed to create '/dev/infiniband/' devices" - RC=1 - fi - - # Load configured modules - if [ "$POST_LOAD_MODULES" != "" ]; then - for mod in $POST_LOAD_MODULES - do - case $mod in - ib_iser) - # Voltaire requirement - /sbin/modprobe --force-modversion $mod > /dev/null 2>&1 - ;; - *) - /sbin/modprobe $mod > /dev/null 2>&1 - ;; - esac - RC=$? - [ $RC -ne 0 ] && eerror "Failed to load $mod" - done - fi - - eoutdent - eend $RC -} - -stop() { - ebegin "Stopping Infiniband" - local RC=0 - - # Check if applications which use infiniband are running - local apps="opensm osmtest ibbs ibns" - local pid - - for app in $apps - do - if ( ps -ef | grep $app | grep -v grep > /dev/null 2>&1 ); then - eerror "Please stop $app and all applications running over InfiniBand" - eend 1 - return - fi - done - - if ! is_module ib_core; then - einfo "HCA driver is not loaded" - eend 0 - return - fi - - # Unload ULPs modules - - if [ "$PRE_UNLOAD_MODULES" != "" ]; then - for mod in $PRE_UNLOAD_MODULES - do - unload $mod || { eend 1; return; } - done - fi - - # Remove srp_presistant_bind.sh before removing ib_srp module - PID_SCRPT_TO_KILL=`ps -efww | grep srp_persistent | grep -v grep | awk '{print $2}'` - if ! [ "$PID_SCRPT_TO_KILL" == "" ]; then - PID_SLEEP_TO_KILL=`ps -efww | grep $PID_SCRPT_TO_KILL | grep sleep | awk '{print $2}'` - kill -9 $PID_SCRPT_TO_KILL - fi - if ! [ "$PID_SLEEP_TO_KILL" == "" ]; then - kill -9 $PID_SLEEP_TO_KILL - fi - - # Unload OpenIB modules - - if [ "$POST_UNLOAD_MODULES" != "" ]; then - for mod in $POST_UNLOAD_MODULES - do - unload $mod || RC=1 - done - fi - - eend $RC -} - |