linux-imx/samples/mic/mpssd/mpss
Shuah Khan 6bee835dd5 samples: move mic/mpssd example code from Documentation
Move mic/mpssd examples to samples and remove it from Documentation
Makefile. Create a new Makefile to build mic/mpssd. It can be built
from top level directory or from mic/mpssd directory:

Run make -C samples/mic/mpssd or cd samples/mic/mpssd; make

Acked-by: Jonathan Corbet <corbet@lwn.net>
Signed-off-by: Shuah Khan <shuahkh@osg.samsung.com>
2016-09-20 12:38:48 -06:00

3.3 KiB
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 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 $?