200 lines · 3.3 KB · Text
RawDownload
#!/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/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 2esac exit $?