summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexey Shvetsov <alexxy@gentoo.org>2011-06-30 22:02:03 +0000
committerAlexey Shvetsov <alexxy@gentoo.org>2011-06-30 22:02:03 +0000
commitd07609a3b5614344029ebffdc7185655eb5699df (patch)
tree45f8930991abeaa6700c327d24057a17992589ce /sys-infiniband
parent[sys-infiniband/libnes] Initial import to tree (diff)
downloadgentoo-2-d07609a3b5614344029ebffdc7185655eb5699df.tar.gz
gentoo-2-d07609a3b5614344029ebffdc7185655eb5699df.tar.bz2
gentoo-2-d07609a3b5614344029ebffdc7185655eb5699df.zip
[sys-infiniband/openib-files] Initial import to tree
(Portage version: 2.2.0_alpha41/cvs/Linux x86_64)
Diffstat (limited to 'sys-infiniband')
-rw-r--r--sys-infiniband/openib-files/ChangeLog11
-rw-r--r--sys-infiniband/openib-files/files/90-ib.rules5
-rw-r--r--sys-infiniband/openib-files/files/openib243
-rw-r--r--sys-infiniband/openib-files/files/openib.conf27
-rw-r--r--sys-infiniband/openib-files/files/openib.env1
-rw-r--r--sys-infiniband/openib-files/files/openib.modprobe12
-rw-r--r--sys-infiniband/openib-files/metadata.xml17
-rw-r--r--sys-infiniband/openib-files/openib-files-1.5.3.1.ebuild128
8 files changed, 444 insertions, 0 deletions
diff --git a/sys-infiniband/openib-files/ChangeLog b/sys-infiniband/openib-files/ChangeLog
new file mode 100644
index 000000000000..fe5e35f467ab
--- /dev/null
+++ b/sys-infiniband/openib-files/ChangeLog
@@ -0,0 +1,11 @@
+# ChangeLog for sys-infiniband/openib-files
+# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/sys-infiniband/openib-files/ChangeLog,v 1.1 2011/06/30 22:02:03 alexxy Exp $
+
+*openib-files-1.5.3.1 (30 Jun 2011)
+
+ 30 Jun 2011; Alexey Shvetsov <alexxy@gentoo.org> +files/90-ib.rules,
+ +openib-files-1.5.3.1.ebuild, +files/openib, +files/openib.conf,
+ +files/openib.env, +files/openib.modprobe, +metadata.xml:
+ Initial import to tree
+
diff --git a/sys-infiniband/openib-files/files/90-ib.rules b/sys-infiniband/openib-files/files/90-ib.rules
new file mode 100644
index 000000000000..789668486c8c
--- /dev/null
+++ b/sys-infiniband/openib-files/files/90-ib.rules
@@ -0,0 +1,5 @@
+KERNEL=="umad*", NAME="infiniband/%k"
+KERNEL=="issm*", NAME="infiniband/%k"
+KERNEL=="uverbs*", NAME="infiniband/%k", MODE="0666"
+KERNEL=="ucm*", NAME="infiniband/%k", MODE="0666"
+KERNEL=="rdma_cm", NAME="infiniband/%k", MODE="0666"
diff --git a/sys-infiniband/openib-files/files/openib b/sys-infiniband/openib-files/files/openib
new file mode 100644
index 000000000000..b65483174b88
--- /dev/null
+++ b/sys-infiniband/openib-files/files/openib
@@ -0,0 +1,243 @@
+#!/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
+}
+
diff --git a/sys-infiniband/openib-files/files/openib.conf b/sys-infiniband/openib-files/files/openib.conf
new file mode 100644
index 000000000000..9b4eb292857c
--- /dev/null
+++ b/sys-infiniband/openib-files/files/openib.conf
@@ -0,0 +1,27 @@
+# uncomment to load ib_ipoib module
+#IPOIB_LOAD=yes
+
+# uncomment to load ib_sdp module (implies IPOIB_LOAD=yes)
+#SDP_LOAD=yes
+
+# uncomment to load ib_srp module
+#SRP_LOAD=yes
+
+# uncomment to load ib_srp_target module
+#SRP_TARGET_LOAD=yes
+
+# uncomment to load rdma_cm module
+#RDMA_CM_LOAD=yes
+
+# uncomment to load ib_ucm module
+#UCM_LOAD=yes
+
+# uncomment to load ib_rds module
+#RDS_LOAD=yes
+
+# uncomment to load ib_iser module
+#ISER_LOAD=yes
+
+# uncomment to load rdma_ucm module
+#RDMA_UCM_LOAD=yes
+
diff --git a/sys-infiniband/openib-files/files/openib.env b/sys-infiniband/openib-files/files/openib.env
new file mode 100644
index 000000000000..2e34cf22f96b
--- /dev/null
+++ b/sys-infiniband/openib-files/files/openib.env
@@ -0,0 +1 @@
+IBPATH="/usr/sbin"
diff --git a/sys-infiniband/openib-files/files/openib.modprobe b/sys-infiniband/openib-files/files/openib.modprobe
new file mode 100644
index 000000000000..52828fb3bf65
--- /dev/null
+++ b/sys-infiniband/openib-files/files/openib.modprobe
@@ -0,0 +1,12 @@
+# Setup aliases from ip-over-ib devices to the ip-over-ib kernel module.
+# Add to this list if you have more infiniband ports. Or you can set
+# IPOIB_LOAD=yes to have the ip-over-ib interfaces brought up by init.d/openib
+alias ib0 ib_ipoib
+alias ib1 ib_ipoib
+alias ib2 ib_ipoib
+alias ib3 ib_ipoib
+
+alias net-pf-27 ib_sdp
+
+#options ib_mthca msi_x=1
+
diff --git a/sys-infiniband/openib-files/metadata.xml b/sys-infiniband/openib-files/metadata.xml
new file mode 100644
index 000000000000..f1ef0107ea73
--- /dev/null
+++ b/sys-infiniband/openib-files/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>cluster</herd>
+ <longdescription>
+OpenIB system files and examples.
+</longdescription>
+ <use>
+ <flag name="ehca">Automatically generated description for ehca</flag>
+ <flag name="ipath">Automatically generated description for ipath</flag>
+ <flag name="iser">Automatically generated description for iser</flag>
+ <flag name="srp">Automatically generated description for srp</flag>
+ <flag name="vnic">Automatically generated description for vnic</flag>
+ <flag name="mlx4">Automatically generated description for mlx4</flag>
+ <flag name="rds">Automatically generated description for rds</flag>
+ </use>
+</pkgmetadata>
diff --git a/sys-infiniband/openib-files/openib-files-1.5.3.1.ebuild b/sys-infiniband/openib-files/openib-files-1.5.3.1.ebuild
new file mode 100644
index 000000000000..ae918b1a4a51
--- /dev/null
+++ b/sys-infiniband/openib-files/openib-files-1.5.3.1.ebuild
@@ -0,0 +1,128 @@
+# 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/openib-files-1.5.3.1.ebuild,v 1.1 2011/06/30 22:02:03 alexxy Exp $
+
+EAPI="4"
+
+OFED_VER="1.5.3.1"
+OFED_SUFFIX="OFED.1.5.3.1."
+
+inherit openib
+
+DESCRIPTION="OpenIB system files"
+SCRIPTDIR="${S}/ofed_scripts"
+KEYWORDS="~amd64 ~x86"
+IUSE="ehca ipath iser mlx4 rds srp vnic"
+
+DEPEND=""
+RDEPEND="${DEPEND}"
+
+src_configure() {
+ einfo "Nothing to configure"
+}
+
+src_compile() {
+ einfo "Nothing to compile"
+}
+
+src_install() {
+ insinto /etc/udev/rules.d
+ newins "${SCRIPTDIR}/90-ib.rules" 40-ib.rules
+ insinto /etc/modprobe.d
+ newins "${FILESDIR}/openib.modprobe" openib.conf
+ newenvd "${FILESDIR}/openib.env" 02openib
+ insinto /etc/infiniband
+
+ doinitd "${FILESDIR}/openib"
+
+ # build openib.conf based on ofed_scripts/ofa_kernel.spec
+ build_ipoib=1
+ build_sdp=1
+ cp "${SCRIPTDIR}/openib.conf" "${T}"
+ IB_CONF_DIR=${T}
+ echo >> ${IB_CONF_DIR}/openib.conf
+ echo "# Load UCM module" >> ${IB_CONF_DIR}/openib.conf
+ echo "UCM_LOAD=no" >> ${IB_CONF_DIR}/openib.conf
+ echo >> ${IB_CONF_DIR}/openib.conf
+ echo "# Load RDMA_CM module" >> ${IB_CONF_DIR}/openib.conf
+ echo "RDMA_CM_LOAD=yes" >> ${IB_CONF_DIR}/openib.conf
+ echo >> ${IB_CONF_DIR}/openib.conf
+ echo "# Load RDMA_UCM module" >> ${IB_CONF_DIR}/openib.conf
+ echo "RDMA_UCM_LOAD=yes" >> ${IB_CONF_DIR}/openib.conf
+ echo >> ${IB_CONF_DIR}/openib.conf
+ echo "# Increase ib_mad thread priority" >> ${IB_CONF_DIR}/openib.conf
+ echo "RENICE_IB_MAD=no" >> ${IB_CONF_DIR}/openib.conf
+
+ echo >> ${IB_CONF_DIR}/openib.conf
+ echo "# Load MTHCA" >> ${IB_CONF_DIR}/openib.conf
+ echo "MTHCA_LOAD=yes" >> ${IB_CONF_DIR}/openib.conf
+ if use ipath; then
+ echo >> ${IB_CONF_DIR}/openib.conf
+ echo "# Load IPATH" >> ${IB_CONF_DIR}/openib.conf
+ echo "IPATH_LOAD=yes" >> ${IB_CONF_DIR}/openib.conf
+ fi
+ if use ehca; then
+ echo >> ${IB_CONF_DIR}/openib.conf
+ echo "# Load eHCA" >> ${IB_CONF_DIR}/openib.conf
+ echo "EHCA_LOAD=yes" >> ${IB_CONF_DIR}/openib.conf
+ fi
+ if use mlx4; then
+ echo >> ${IB_CONF_DIR}/openib.conf
+ echo "# Load MLX4 modules" >> ${IB_CONF_DIR}/openib.conf
+ echo "MLX4_LOAD=yes" >> ${IB_CONF_DIR}/openib.conf
+ fi
+ if (( build_ipoib )); then
+ echo >> ${IB_CONF_DIR}/openib.conf
+ echo "# Load IPoIB" >> ${IB_CONF_DIR}/openib.conf
+ echo "#IPOIB_LOAD=yes" >> ${IB_CONF_DIR}/openib.conf
+ echo >> ${IB_CONF_DIR}/openib.conf
+ echo "# Enable IPoIB Connected Mode" >> ${IB_CONF_DIR}/openib.conf
+ echo "#SET_IPOIB_CM=yes" >> ${IB_CONF_DIR}/openib.conf
+ # from ofa_user.spec:
+ echo >> ${IB_CONF_DIR}/openib.conf
+ echo "# Enable IPoIB High Availability daemon" >> ${IB_CONF_DIR}/openib.conf
+ echo "#IPOIBHA_ENABLE=no" >> ${IB_CONF_DIR}/openib.conf
+ echo "# PRIMARY_IPOIB_DEV=ib0" >> ${IB_CONF_DIR}/openib.conf
+ echo "# SECONDARY_IPOIB_DEV=ib1" >> ${IB_CONF_DIR}/openib.conf
+ fi
+ if (( build_sdp )); then
+ echo >> ${IB_CONF_DIR}/openib.conf
+ echo "# Load SDP module" >> ${IB_CONF_DIR}/openib.conf
+ echo "#SDP_LOAD=yes" >> ${IB_CONF_DIR}/openib.conf
+ fi
+ if use srp; then
+ echo >> ${IB_CONF_DIR}/openib.conf
+ echo "# Load SRP module" >> ${IB_CONF_DIR}/openib.conf
+ echo "#SRP_LOAD=no" >> ${IB_CONF_DIR}/openib.conf
+ # from ofa_user.spec:
+ echo >> ${IB_CONF_DIR}/openib.conf
+ echo "# Enable SRP High Availability daemon" >> ${IB_CONF_DIR}/openib.conf
+ echo "#SRPHA_ENABLE=no" >> ${IB_CONF_DIR}/openib.conf
+
+ fi
+ if use iser; then
+ echo >> ${IB_CONF_DIR}/openib.conf
+ echo "# Load ISER module" >> ${IB_CONF_DIR}/openib.conf
+ echo "#ISER_LOAD=no" >> ${IB_CONF_DIR}/openib.conf
+ fi
+ if use rds; then
+ echo >> ${IB_CONF_DIR}/openib.conf
+ echo "# Load RDS module" >> ${IB_CONF_DIR}/openib.conf
+ echo "#RDS_LOAD=no" >> ${IB_CONF_DIR}/openib.conf
+ fi
+ if use vnic; then
+ echo >> ${IB_CONF_DIR}/openib.conf
+ echo "# Load VNIC module" >> ${IB_CONF_DIR}/openib.conf
+ echo "#VNIC_LOAD=yes" >> ${IB_CONF_DIR}/openib.conf
+ fi
+
+ doins "${T}/openib.conf"
+}
+
+pkg_postinst() {
+ einfo "Configuration file installed in /etc/infiniband/openib.conf"
+ einfo "To automatically initialize infiniband on boot, add openib to your"
+ einfo "start-up scripts, like so:"
+ einfo "\`rc-update add openib default\`"
+
+}