Update to latest upstream version

Add support for running more than one instance via sysv init script

Signed-off-by: Doug Ledford <dledford@redhat.com>
This commit is contained in:
Doug Ledford 2011-07-20 17:24:54 -04:00
parent 850ddff943
commit a2783db729
6 changed files with 184 additions and 24 deletions

1
.gitignore vendored
View File

@ -3,3 +3,4 @@ opensm-3.3.1.tar.gz
opensm-3.3.2.tar.gz
opensm-3.3.3.tar.gz
opensm-3.3.5.tar.gz
opensm-3.3.9.tar.gz

View File

@ -33,6 +33,9 @@ lmc 0
# ESP0. Otherwise, LMC value for ESP0s is 0.
lmc_esp0 FALSE
# sm_sl determines SMSL used for SM/SA communication
sm_sl 0
# The code of maximal time a packet can live in a switch
# The actual time is 4.096usec * 2^<packet_life_time>
# The value 0x14 disables this mechanism
@ -88,7 +91,7 @@ overrun_errors_threshold 0x08
# PARTITIONING OPTIONS
#
# Partition configuration file to be used
partition_config_file /etc/ofed/partitions.conf
partition_config_file /etc/rdma/partitions.conf
# Disable partition enforcement by switches
no_partition_enforcement FALSE
@ -118,6 +121,12 @@ port_profile_switch_nodes FALSE
# Name of file with port guids to be ignored by port profiling
port_prof_ignore_file (null)
# The file holding routing weighting factors per output port
hop_weights_file (null)
# The file holding non-default port order per switch for DOR routing
dimn_ports_file (null)
# Routing engine
# Multiple routing engines can be specified separated by
# commas so that specific ordering of routing algorithms will
@ -145,6 +154,14 @@ root_guid_file (null)
# One guid in each line
cn_guid_file (null)
# The file holding the fat-tree I/O node guids
# One guid in each line
io_guid_file (null)
# Number of reverse hops allowed for I/O nodes
# Used for connectivity between I/O nodes connected to Top Switches
max_reverse_hops 0
# The file holding the node ids which will be used by Up/Down algorithm instead
# of GUIDs (one guid and id in each line)
ids_guid_file (null)
@ -152,15 +169,25 @@ ids_guid_file (null)
# The file holding guid routing order guids (for MinHop and Up/Down)
guid_routing_order_file (null)
# Do mesh topology analysis (for LASH algorithm)
do_mesh_analysis FALSE
# Starting VL for LASH algorithm
lash_start_vl 0
# SA database file name
sa_db_file (null)
# If TRUE causes OpenSM to dump SA database at the end of
# every light sweep, regardless of the verbosity level
sa_db_dump FALSE
#
# HANDOVER - MULTIPLE SMs OPTIONS
#
# SM priority used for deciding who is the master
# Range goes from 0 (lowest priority) to 15 (highest).
sm_priority 15
sm_priority 0
# If TRUE other SMs on the subnet should be ignored
ignore_other_sm FALSE
@ -179,11 +206,21 @@ honor_guid2lid_file FALSE
# TIMING AND THREADING OPTIONS
#
# Maximum number of SMPs sent in parallel
max_wire_smps 32
max_wire_smps 4
# Maximum number of timeout based SMPs allowed to be outstanding
# A value less than or equal to max_wire_smps disables this mechanism
max_wire_smps2 4
# The timeout in [usec] used for sending SMPs above max_wire_smps limit and below max_wire_smps2 limit
max_smps_timeout 600000
# The maximum time in [msec] allowed for a transaction to complete
transaction_timeout 200
# The maximum number of retries allowed for a transaction to complete
transaction_retries 3
# Maximal time in [msec] a message can stay in the incoming message queue.
# If there is more than one message in the queue and the last message
# stayed in the queue more than this value, any SA request will be
@ -197,7 +234,7 @@ single_thread FALSE
# MISC OPTIONS
#
# Daemon mode
daemon TRUE
daemon FALSE
# SM Inactive
sm_inactive FALSE
@ -205,11 +242,18 @@ sm_inactive FALSE
# Babbling Port Policy
babbling_port_policy FALSE
# Use Optimized SLtoVLMapping programming if supported by device
use_optimized_slvl FALSE
#
# Event Plugin Options
#
# Event plugin name(s)
event_plugin_name (null)
# Options string that would be passed to the plugin(s)
event_plugin_options (null)
#
# Node name map for mapping node's to more descriptive node descriptions
# (man ibnetdiscover for more information)
@ -263,7 +307,7 @@ console_port 10000
qos FALSE
# QoS policy file to be used
qos_policy_file /etc/ofed/qos-policy.conf
qos_policy_file /etc/rdma/qos-policy.conf
# QoS default options
qos_max_vls 0
@ -301,10 +345,13 @@ qos_rtr_vlarb_low (null)
qos_rtr_sl2vl (null)
# Prefix routes file name
prefix_routes_file /etc/ofed/prefix-routes.conf
prefix_routes_file /etc/rdma/prefix-routes.conf
#
# IPv6 Solicited Node Multicast (SNM) Options
#
consolidate_ipv6_snm_req FALSE
# Log prefix
log_prefix (null)

View File

@ -18,15 +18,45 @@
prog=/usr/sbin/opensm
PID_FILE=/var/run/opensm.pid
[ -f /etc/sysconfig/opensm ] && . /etc/sysconfig/opensm
[ -n "$PRIORITY" ] && prio="-p $PRIORITY"
ACTION=$1
start()
{
local OSM_PID=
if [ -z "$GUIDS" ]; then
CONFIGS=""
CONFIG_CNT=0
for conf in /etc/rdma/opensm.conf.[0-9]*; do
CONFIGS="$CONFIGS $conf"
let CONFIG_CNT++
done
else
GUID_CNT=0
for guid in $GUIDS; do
let GUID_CNT++
done
fi
[ -f /var/lock/subsys/opensm ] && return 0
# Start opensm
echo -n "Starting IB Subnet Manager:"
$prog -B > /dev/null 2>&1
echo -n "Starting IB Subnet Manager: "
[ -n "$PRIORITY" ] && echo -n "Priority=$PRIORITY "
[ -n "$GUIDS" ] && echo -n "$GUID_CNT guids "
[ -n "$CONFIGS" ] && echo -n "$CONFIG_CNT instances "
if [ -n "$GUIDS" ]; then
for guid in $GUIDS; do
$prog -B $prio -g $guid >/dev/null 2>&1
done
elif [ -n "$CONFIGS" ]; then
for config in $CONFIGS; do
$prog -B $prio -F $config >/dev/null 2>&1
done
else
$prog -B $prio >/dev/null 2>&1
fi
sleep 1
OSM_PID=`pidof $prog`
checkpid $OSM_PID
@ -42,7 +72,7 @@ stop()
{
[ -f /var/lock/subsys/opensm ] || return 0
echo -n "Stopping IB Subnet Manager."
echo -n "Stopping IB Subnet Manager(s)."
OSM_PID=`cat $PID_FILE`
@ -55,7 +85,7 @@ stop()
return 0
fi
# Kill opensm
kill -15 $OSM_PID > /dev/null 2>&1
kill -15 $OSM_PID >/dev/null 2>&1
cnt=0
while [ $cnt -lt 6 ]; do
checkpid $OSM_PID
@ -64,7 +94,7 @@ stop()
fi
echo -n "."
sleep 1
cnt=$(( $cnt + 1 ))
let cnt++
done
checkpid $OSM_PID

View File

@ -1,6 +1,6 @@
Name: opensm
Version: 3.3.5
Release: 2%{?dist}
Version: 3.3.9
Release: 1%{?dist}
Summary: OpenIB InfiniBand Subnet Manager and management utilities
Group: System Environment/Daemons
License: GPLv2 or BSD
@ -9,8 +9,9 @@ Source0: http://www.openfabrics.org/downloads/management/%{name}-%{version}.tar.
Source1: opensm.conf
Source2: opensm.logrotate
Source3: opensm.initd
Source4: opensm.sysconfig
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: libibmad-devel = 1.3.4, libtool, bison, flex, byacc
BuildRequires: libibmad-devel = 1.3.7, libtool, bison, flex, byacc
Requires: %{name}-libs = %{version}-%{release}, logrotate, rdma
ExcludeArch: s390 s390x
@ -52,18 +53,19 @@ Static version of opensm libraries
make %{?_smp_mflags}
%install
rm -rf $RPM_BUILD_ROOT
make install DESTDIR=$RPM_BUILD_ROOT
rm -rf %{buildroot}
make install DESTDIR=%{buildroot}
# remove unpackaged files from the buildroot
rm -f $RPM_BUILD_ROOT%{_libdir}/*.la
rm -fr $RPM_BUILD_ROOT%{_sysconfdir}/init.d
install -D -m644 %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/rdma/opensm.conf
install -D -m644 %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/opensm
install -D -m755 %{SOURCE3} $RPM_BUILD_ROOT%{_initddir}/opensm
rm -f %{buildroot}%{_libdir}/*.la
rm -fr %{buildroot}%{_sysconfdir}/init.d
install -D -m644 %{SOURCE1} %{buildroot}%{_sysconfdir}/rdma/opensm.conf
install -D -m644 %{SOURCE2} %{buildroot}%{_sysconfdir}/logrotate.d/opensm
install -D -m755 %{SOURCE3} %{buildroot}%{_initddir}/opensm
install -D -m644 %{SOURCE4} %{buildroot}%{_sysconfdir}/sysconfig/opensm
mkdir -p ${RPM_BUILD_ROOT}/var/cache/opensm
%clean
rm -rf $RPM_BUILD_ROOT
rm -rf %{buildroot}
%post
if [ $1 = 1 ]; then
@ -91,6 +93,7 @@ fi
%{_mandir}/man8/*
%config(noreplace) %{_sysconfdir}/logrotate.d/opensm
%config(noreplace) %{_sysconfdir}/rdma/opensm.conf
%config(noreplace) %{_sysconfdir}/sysconfig/opensm
%doc AUTHORS COPYING ChangeLog INSTALL README NEWS
%files libs
@ -107,6 +110,14 @@ fi
%{_libdir}/lib*.a
%changelog
* Wed Jul 20 2011 Doug Ledford <dledford@redhat.com> - 3.3.9-1
- Update to latest upstream version
- Add /etc/sysconfig/opensm for use by opensm init script
- Enable the ability to start more than one instance of opensm for multiple
fabric support
- Enable the ability to start opensm with a priority other than default for
support of backup opensm instances
* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.3.5-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
@ -140,4 +151,3 @@ fi
* Sun Jun 08 2008 Doug Ledford <dledford@redhat.com> - 3.2.1-1
- Initial package for Fedora review process

72
opensm.sysconfig Normal file
View File

@ -0,0 +1,72 @@
# Problem #1: Multiple IB fabrics needing a subnet manager
#
# In the event that a machine has more than one IB subnet attached,
# and that machine is an opensm server, by default, opensm will
# only attach to one port and will not manage the fabric on the
# other port. There are two ways to solve this problem:
#
# 1) Start opensm on multiple machines and configure it to manage
# different fabrics on each machine
# 2) Configure opensm to start multiple instances on a single
# machine
#
# Both solutions to this problem require non-standard configurations.
# In other words, you would normally have to modify /etc/rdma/opensm.conf
# and once you do that, the file will no longer be updated for new
# options when opensm is upgraded. In an effort to allow people to
# have more than one subnet managed by opensm without having to modify
# the system default opensm.conf file, we have enabled two methods
# for modifying the default opensm config items needed to enable
# multiple fabric management.
#
# Method #1: Create multiple opensm.conf files in non-standard locations
# Copy /etc/rdma/opensm.conf to /etc/rdma/opensm.conf.<number>
# (do this once for each instance you want started)
# Edit each copy of the opensm.conf file to reflect the necessary changes
# for a multiple instance startup. If you need to manage more than
# one fabric, you will have to change the guid option in each file
# to specify the guid of the specific port you want opensm attached
# to.
#
# The advantage to method #1 is that, on the off chance you want to do
# really special custom things on different ports, like have different
# QoS settings depending on which port you are attached to, you have the
# freedom to edit any and all settings for each instance without those
# changes affecting other instances or being lost when opensm upgrades.
#
# Method #2: Specify multiple GUIDS variable entries in this file
# Uncomment the below GUIDS variable and enter each guid you need to attach
# to into the list. If using this method you need to enter each
# guid into the list as we won't attach to any default ports, only
# those specified in the list.
#
#GUIDS="0x0002c90300048ca1 0x0002c90300048ca2"
#
# The obvious advantage to method #2 is that it's simple and doesn't
# clutter up your file system, but it is far more limited in what you
# can do. If you enable method #2, then even if you create the files
# referenced in method #1, they will be ignored.
#
# Problem #2: Activating a backup subnet manager
#
# The default priority of opensm is set so that it wants to be the
# primary subnet manager. This is great when you are only running
# opensm on one server, but if you want to have a non-primary opensm
# instance for failover, then you have to manually edit the opensm.conf
# file like for problem #1. This carries with it all the problems
# listed above. If you wish to enable opensm as a non-primary manager,
# then you can uncomment the PRIORITY variable below and set it to
# some number between 0 and 15, where 15 is the highest priority and
# the primary manager, with 0 being the lowest backup server. This method
# will work with the GUIDS option above, and also with the multiple
# config files in method #1 above. However, only a single priority is
# supported here. If you wanted more than one priority (say this machine
# is the primary on the first fabric, and second on the second fabric,
# while the other opensm server is primary on the second fabric and
# second on the primary), then the only way to do that is to use method #1
# above and individually edit the config files. If you edit the config
# files to set the priority and then also set the priority here, then
# this setting will override the config files and render that particular
# edit useless.
#
#PRIORITY=15

View File

@ -1 +1 @@
3bdd9f288b50c9031883d2d7c2f15937 opensm-3.3.5.tar.gz
5e9b461073f7cfbafe0207e014796f9f opensm-3.3.9.tar.gz