diff options
author | Alexey Shvetsov <alexxy@gentoo.org> | 2016-06-29 17:17:07 +0300 |
---|---|---|
committer | Alexey Shvetsov <alexxy@gentoo.org> | 2016-06-30 01:31:15 +0300 |
commit | 78687b7871a6d19ba23ac5da91c72d9732061bc1 (patch) | |
tree | befa090ead56292b47a1607c1388583318fbbc3e /sys-fabric/ofed | |
parent | games-emulation/dosbox: sync live ebuild and make it copyable (diff) | |
download | gentoo-78687b7871a6d19ba23ac5da91c72d9732061bc1.tar.gz gentoo-78687b7871a6d19ba23ac5da91c72d9732061bc1.tar.bz2 gentoo-78687b7871a6d19ba23ac5da91c72d9732061bc1.zip |
eclass/openib.eclass: Clean up ancient versions
Also move to sys-fabric category
Diffstat (limited to 'sys-fabric/ofed')
-rw-r--r-- | sys-fabric/ofed/Manifest | 2 | ||||
-rw-r--r-- | sys-fabric/ofed/files/90-ib.rules | 5 | ||||
-rw-r--r-- | sys-fabric/ofed/files/openib | 243 | ||||
-rw-r--r-- | sys-fabric/ofed/files/openib.conf | 27 | ||||
-rw-r--r-- | sys-fabric/ofed/files/openib.env | 1 | ||||
-rw-r--r-- | sys-fabric/ofed/files/openib.modprobe | 12 | ||||
-rw-r--r-- | sys-fabric/ofed/metadata.xml | 21 | ||||
-rw-r--r-- | sys-fabric/ofed/ofed-3.12_rc1.ebuild | 150 | ||||
-rw-r--r-- | sys-fabric/ofed/ofed-3.5.ebuild | 158 |
9 files changed, 619 insertions, 0 deletions
diff --git a/sys-fabric/ofed/Manifest b/sys-fabric/ofed/Manifest new file mode 100644 index 000000000000..ca457c585395 --- /dev/null +++ b/sys-fabric/ofed/Manifest @@ -0,0 +1,2 @@ +DIST OFED-3.12-rc1.tgz 22055476 SHA256 14ca8a2b0d68e3ee9a37f475fa9eecd9a5ffd6055135f9d4d9db8319843a94dc SHA512 9f834d6982ab7e8ab47a8b5c958ab2e4c238ef983e47798e7f06655f69672ea1e996297939b381f26ed8c39552f6e62156173d5ddd2f0a7b6cad6aecdd973944 WHIRLPOOL 5a64b1d952890ea0e72e0ca93654a0fabc8f871475b05fcbe3b214ddfe4836f6b92d4fbc9e0f0d79acfe69d8c8d219b2c467c23654021e23eaf85ae6825ea4a9 +DIST OFED-3.5-rc2.tgz 18600237 SHA256 b267cea49bf72790843e6b08e26c10a6954d7736a8b93deed1e632772f4f5fff SHA512 deb83c3417ac60bd5d4c6ac1cadf93d6a34a55ca58365b54bb0c3a8230ba6a7f13e0257515dac0170cc4ab46b558519c86e6c01f7fa49550162feed0b0ea2e89 WHIRLPOOL e6843593fbe4937ffcf600be9cb3dee78e14cbeb4c411a4b64076b1194653cbcb9d4bc6cbd52ad77ac9c6b14d4dd2cdafa4364bfe6924b55896844042aa4d9cd diff --git a/sys-fabric/ofed/files/90-ib.rules b/sys-fabric/ofed/files/90-ib.rules new file mode 100644 index 000000000000..789668486c8c --- /dev/null +++ b/sys-fabric/ofed/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-fabric/ofed/files/openib b/sys-fabric/ofed/files/openib new file mode 100644 index 000000000000..dddc857359b4 --- /dev/null +++ b/sys-fabric/ofed/files/openib @@ -0,0 +1,243 @@ +#!/sbin/openrc-run +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +# 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-fabric/ofed/files/openib.conf b/sys-fabric/ofed/files/openib.conf new file mode 100644 index 000000000000..9b4eb292857c --- /dev/null +++ b/sys-fabric/ofed/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-fabric/ofed/files/openib.env b/sys-fabric/ofed/files/openib.env new file mode 100644 index 000000000000..2e34cf22f96b --- /dev/null +++ b/sys-fabric/ofed/files/openib.env @@ -0,0 +1 @@ +IBPATH="/usr/sbin" diff --git a/sys-fabric/ofed/files/openib.modprobe b/sys-fabric/ofed/files/openib.modprobe new file mode 100644 index 000000000000..52828fb3bf65 --- /dev/null +++ b/sys-fabric/ofed/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-fabric/ofed/metadata.xml b/sys-fabric/ofed/metadata.xml new file mode 100644 index 000000000000..d0db584755a6 --- /dev/null +++ b/sys-fabric/ofed/metadata.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>cluster@gentoo.org</email> + <name>Gentoo Cluster Project</name> + </maintainer> + <use> + <flag name="compat-dapl">Add support for DAPL v1.2 abstraction layer</flag> + <flag name="dapl">Add support for DAPL abstraction layer</flag> + <flag name="diags">Add dignostic tools for infiniband</flag> + <flag name="ibacm">Add support for userspace pre-connection services</flag> + <flag name="mstflint">Tools to burn Mellanox firmware</flag> + <flag name="opensm">Add OpenSM - Subnet manager for infiniband</flag> + <flag name="perftest">Add perftest utils</flag> + <flag name="qperf">Add rdma tests</flag> + <flag name="sdp">Add SDP tools</flag> + <flag name="srp">Suport for userspace part for srp initiator</flag> + <flag name="rds">Tools to manage rds sockets</flag> + </use> +</pkgmetadata> diff --git a/sys-fabric/ofed/ofed-3.12_rc1.ebuild b/sys-fabric/ofed/ofed-3.12_rc1.ebuild new file mode 100644 index 000000000000..2b083e6880ee --- /dev/null +++ b/sys-fabric/ofed/ofed-3.12_rc1.ebuild @@ -0,0 +1,150 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI="5" + +OFED_VER="3.12" +OFED_RC="1" +OFED_RC_VER="1" +OFED_SUFFIX="1.g8336567" + +IUSE_OFED_DRIVERS=" + ofed_drivers_cxgb3 + ofed_drivers_cxgb4 + ofed_drivers_ehca + ofed_drivers_ipath + ofed_drivers_mlx4 + ofed_drivers_mlx5 + ofed_drivers_mthca + ofed_drivers_nes + ofed_drivers_ocrdma + ofed_drivers_psm" + +inherit openib udev toolchain-funcs + +DESCRIPTION="OpenIB system files" +KEYWORDS="~amd64 ~x86 ~amd64-linux" +IUSE="dapl +diags ibacm mstflint +opensm perftest qperf rds srp ${IUSE_OFED_DRIVERS}" + +RDEPEND="!sys-fabric/openib + !sys-fabric/openib-files + sys-fabric/libibcm:${SLOT} + sys-fabric/libibmad:${SLOT} + sys-fabric/libibumad:${SLOT} + sys-fabric/librdmacm:${SLOT} + dapl? ( sys-fabric/dapl:${SLOT} ) + diags? ( sys-fabric/infiniband-diags:${SLOT} ) + ibacm? ( sys-fabric/ibacm:${SLOT} ) + mstflint? ( sys-fabric/mstflint:${SLOT} ) + opensm? ( sys-fabric/opensm:${SLOT} ) + perftest? ( sys-fabric/perftest:${SLOT} ) + qperf? ( sys-fabric/qperf:${SLOT} ) + srp? ( sys-fabric/srptools:${SLOT} ) + rds? ( sys-fabric/rds-tools:${SLOT} ) + ofed_drivers_cxgb3? ( sys-fabric/libcxgb3:${SLOT} ) + ofed_drivers_cxgb4? ( sys-fabric/libcxgb4:${SLOT} ) + ofed_drivers_ehca? ( sys-fabric/libehca:${SLOT} ) + ofed_drivers_ipath? ( sys-fabric/libipathverbs:${SLOT} ) + ofed_drivers_mlx4? ( sys-fabric/libmlx4:${SLOT} ) + ofed_drivers_mlx5? ( sys-fabric/libmlx5:${SLOT} ) + ofed_drivers_mthca? ( sys-fabric/libmthca:${SLOT} ) + ofed_drivers_nes? ( sys-fabric/libnes:${SLOT} ) + ofed_drivers_ocrdma? ( sys-fabric/libocrdma:${SLOT} ) + ofed_drivers_psm? ( sys-fabric/infinipath-psm:${SLOT} ) + " +DEPEND="${RDEPEND} + virtual/pkgconfig + " +block_other_ofed_versions + +S="${WORKDIR}/${MY_PN}-${OFED_VER}" +SCRIPTDIR="${S}/ofed_scripts" + +src_configure() { :; } +src_compile() { :; } + +src_install() { + udev_newrules "${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 + 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 ofed_drivers_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 ofed_drivers_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 ofed_drivers_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 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 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 + + 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\`" + +} diff --git a/sys-fabric/ofed/ofed-3.5.ebuild b/sys-fabric/ofed/ofed-3.5.ebuild new file mode 100644 index 000000000000..0bd95bf18a11 --- /dev/null +++ b/sys-fabric/ofed/ofed-3.5.ebuild @@ -0,0 +1,158 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI="4" + +OFED_VER="3.5" +OFED_RC="1" +OFED_RC_VER="2" +OFED_SUFFIX="OFED.3.5.rc2" + +IUSE_OFED_DRIVERS=" + ofed_drivers_cxgb3 + ofed_drivers_cxgb4 + ofed_drivers_ehca + ofed_drivers_ipath + ofed_drivers_mlx4 + ofed_drivers_mthca + ofed_drivers_nes + ofed_drivers_psm" + +inherit openib udev toolchain-funcs + +DESCRIPTION="OpenIB system files" +SCRIPTDIR="${S}/ofed_scripts" +KEYWORDS="~amd64 ~x86 ~amd64-linux" +IUSE="compat-dapl dapl +diags ibacm mstflint +opensm perftest rds sdp srp ${IUSE_OFED_DRIVERS}" + +RDEPEND="!sys-fabric/openib + !sys-fabric/openib-files + sys-fabric/libibcm:${SLOT} + sys-fabric/libibmad:${SLOT} + sys-fabric/libibumad:${SLOT} + sys-fabric/librdmacm:${SLOT} + compat-dapl? ( sys-fabric/compat-dapl:${SLOT} ) + dapl? ( sys-fabric/dapl:${SLOT} ) + diags? ( sys-fabric/infiniband-diags:${SLOT} ) + ibacm? ( sys-fabric/ibacm:${SLOT} ) + mstflint? ( sys-fabric/mstflint:${SLOT} ) + opensm? ( sys-fabric/opensm:${SLOT} ) + perftest? ( sys-fabric/perftest:${SLOT} ) + srp? ( sys-fabric/srptools:${SLOT} ) + ofed_drivers_cxgb3? ( sys-fabric/libcxgb3:${SLOT} ) + ofed_drivers_cxgb4? ( sys-fabric/libcxgb4:${SLOT} ) + ofed_drivers_ehca? ( sys-fabric/libehca:${SLOT} ) + ofed_drivers_ipath? ( sys-fabric/libipathverbs:${SLOT} ) + ofed_drivers_mlx4? ( sys-fabric/libmlx4:${SLOT} ) + ofed_drivers_mthca? ( sys-fabric/libmthca:${SLOT} ) + ofed_drivers_nes? ( sys-fabric/libnes:${SLOT} ) + ofed_drivers_psm? ( sys-fabric/infinipath-psm:${SLOT} ) + " +DEPEND="${RDEPEND} + virtual/pkgconfig + " + +src_configure() { :; } +src_compile() { :; } + +src_install() { + udev_newrules "${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 ofed_drivers_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 ofed_drivers_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 ofed_drivers_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\`" + +} |