#!/bin/bash# Intel MIC Platform Software Stack (MPSS)## Copyright(c) 2013 Intel Corporation.## This program is free software; you can redistribute it and/or modify# it under the terms of the GNU General Public License, version 2, as# published by the Free Software Foundation.## This program is distributed in the hope that it will be useful, but# WITHOUT ANY WARRANTY; without even the implied warranty of# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU# General Public License for more details.## The full GNU General Public License is included in this distribution in# the file called "COPYING".## Intel MIC User Space Tools.## mpss Start mpssd.## chkconfig: 2345 95 05# description: start MPSS stack processing.#### BEGIN INIT INFO# Provides: mpss# Required-Start:# Required-Stop:# Short-Description: MPSS stack control# Description: MPSS stack control### END INIT INFO# Source function library.. /etc/init.d/functionsexec=/usr/sbin/mpssdsysfs="/sys/class/mic"mic_modules="mic_host mic_x100_dma scif vop"start(){ [ -x $exec ] || exit 5 if [ "`ps -e | awk '{print $4}' | grep mpssd | head -1`" = "mpssd" ]; then echo -e $"MPSSD already running! " success echo return 0 fi echo -e $"Starting MPSS Stack" echo -e $"Loading MIC drivers:" $mic_modules modprobe -a $mic_modules RETVAL=$? if [ $RETVAL -ne 0 ]; then failure echo return $RETVAL fi # Start the daemon echo -n $"Starting MPSSD " $exec RETVAL=$? if [ $RETVAL -ne 0 ]; then failure echo return $RETVAL fi success echo sleep 5 # Boot the cards micctrl -b # Wait till ping works for f in $sysfs/* do count=100 ipaddr=`cat $f/cmdline` ipaddr=${ipaddr#*address,} ipaddr=`echo $ipaddr | cut -d, -f1 | cut -d\; -f1` while [ $count -ge 0 ] do echo -e "Pinging "`basename $f`" " ping -c 1 $ipaddr &> /dev/null RETVAL=$? if [ $RETVAL -eq 0 ]; then success break fi sleep 1 count=`expr $count - 1` done [ $RETVAL -ne 0 ] && failure || success echo done return $RETVAL}stop(){ echo -e $"Shutting down MPSS Stack: " # Bail out if module is unloaded if [ ! -d "$sysfs" ]; then echo -n $"Module unloaded " success echo return 0 fi # Shut down the cards. micctrl -S # Wait for the cards to go offline for f in $sysfs/* do while [ "`cat $f/state`" != "ready" ] do sleep 1 echo -e "Waiting for "`basename $f`" to become ready" done done # Display the status of the cards micctrl -s # Kill MPSSD now echo -n $"Killing MPSSD" killall -9 mpssd 2>/dev/null RETVAL=$? [ $RETVAL -ne 0 ] && failure || success echo return $RETVAL}restart(){ stop sleep 5 start}status(){ micctrl -s if [ "`ps -e | awk '{print $4}' | grep mpssd | head -n 1`" = "mpssd" ]; then echo "mpssd is running" else echo "mpssd is stopped" fi return 0}unload(){ if [ ! -d "$sysfs" ]; then echo -n $"No MIC_HOST Module: " success echo return fi stop sleep 5 echo -n $"Removing MIC drivers:" $mic_modules modprobe -r $mic_modules RETVAL=$? [ $RETVAL -ne 0 ] && failure || success echo return $RETVAL}case $1 in start) start ;; stop) stop ;; restart) restart ;; status) status ;; unload) unload ;; *) echo $"Usage: $0 {start|stop|restart|status|unload}" exit 2esacexit $?
#!/bin/bash
# Intel MIC Platform Software Stack (MPSS)
#
# Copyright(c) 2013 Intel Corporation.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License, version 2, as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# The full GNU General Public License is included in this distribution in
# the file called "COPYING".
#
# Intel MIC User Space Tools.
#
# mpss Start mpssd.
#
# chkconfig: 2345 95 05
# description: start MPSS stack processing.
#
### BEGIN INIT INFO
# Provides: mpss
# Required-Start:
# Required-Stop:
# Short-Description: MPSS stack control
# Description: MPSS stack control
### END INIT INFO
# Source function library.
. /etc/init.d/functions
exec=/usr/sbin/mpssd
sysfs="/sys/class/mic"
mic_modules="mic_host mic_x100_dma scif vop"
start()
{
[ -x $exec ] || exit 5
if [ "`ps -e | awk '{print $4}' | grep mpssd | head -1`" = "mpssd" ]; then
echo -e $"MPSSD already running! "
success
echo
return 0
fi
echo -e $"Starting MPSS Stack"
echo -e $"Loading MIC drivers:" $mic_modules
modprobe -a $mic_modules
RETVAL=$?
if [ $RETVAL -ne 0 ]; then
failure
echo
return $RETVAL
fi
# Start the daemon
echo -n $"Starting MPSSD "
$exec
RETVAL=$?
if [ $RETVAL -ne 0 ]; then
failure
echo
return $RETVAL
fi
success
echo
sleep 5
# Boot the cards
micctrl -b
# Wait till ping works
for f in $sysfs/*
do
count=100
ipaddr=`cat $f/cmdline`
ipaddr=${ipaddr#*address,}
ipaddr=`echo $ipaddr | cut -d, -f1 | cut -d\; -f1`
while [ $count -ge 0 ]
do
echo -e "Pinging "`basename $f`" "
ping -c 1 $ipaddr &> /dev/null
RETVAL=$?
if [ $RETVAL -eq 0 ]; then
success
break
fi
sleep 1
count=`expr $count - 1`
done
[ $RETVAL -ne 0 ] && failure || success
echo
done
return $RETVAL
}
stop()
{
echo -e $"Shutting down MPSS Stack: "
# Bail out if module is unloaded
if [ ! -d "$sysfs" ]; then
echo -n $"Module unloaded "
success
echo
return 0
fi
# Shut down the cards.
micctrl -S
# Wait for the cards to go offline
for f in $sysfs/*
do
while [ "`cat $f/state`" != "ready" ]
do
sleep 1
echo -e "Waiting for "`basename $f`" to become ready"
done
done
# Display the status of the cards
micctrl -s
# Kill MPSSD now
echo -n $"Killing MPSSD"
killall -9 mpssd 2>/dev/null
RETVAL=$?
[ $RETVAL -ne 0 ] && failure || success
echo
return $RETVAL
}
restart()
{
stop
sleep 5
start
}
status()
{
micctrl -s
if [ "`ps -e | awk '{print $4}' | grep mpssd | head -n 1`" = "mpssd" ]; then
echo "mpssd is running"
else
echo "mpssd is stopped"
fi
return 0
}
unload()
{
if [ ! -d "$sysfs" ]; then
echo -n $"No MIC_HOST Module: "
success
echo
return
fi
stop
sleep 5
echo -n $"Removing MIC drivers:" $mic_modules
modprobe -r $mic_modules
RETVAL=$?
[ $RETVAL -ne 0 ] && failure || success
echo
return $RETVAL
}
case $1 in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
status)
status
;;
unload)
unload
;;
*)
echo $"Usage: $0 {start|stop|restart|status|unload}"
exit 2
esac
exit $?