forked from Minki/linux
f4a66c2044
This patch updates the MIC host daemon to work with corresponding changes in COSM. Other MIC daemon fixes, cleanups and enhancements as are also rolled into this patch. Changes to MIC sysfs ABI which go into effect with this patch are also documented. Reviewed-by: Sudeep Dutt <sudeep.dutt@intel.com> Signed-off-by: Dasaratharaman Chandramouli <dasaratharaman.chandramouli@intel.com> Signed-off-by: Ashutosh Dixit <ashutosh.dixit@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
201 lines
3.3 KiB
Bash
Executable File
201 lines
3.3 KiB
Bash
Executable File
#!/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"
|
|
|
|
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 $?
|