Back to home page

OSCL-LXR

 
 

    


0001 #!/bin/bash
0002 # SPDX-License-Identifier: GPL-2.0-only
0003 # Copyright (C) 2015-2019 ARM Limited.
0004 # Original author: Dave Martin <Dave.Martin@arm.com>
0005 
0006 set -ue
0007 
0008 NR_CPUS=`nproc`
0009 
0010 pids=
0011 logs=
0012 
0013 cleanup () {
0014         trap - INT TERM CHLD
0015         set +e
0016 
0017         if [ -n "$pids" ]; then
0018                 kill $pids
0019                 wait $pids
0020                 pids=
0021         fi
0022 
0023         if [ -n "$logs" ]; then
0024                 cat $logs
0025                 rm $logs
0026                 logs=
0027         fi
0028 }
0029 
0030 interrupt () {
0031         cleanup
0032         exit 0
0033 }
0034 
0035 child_died () {
0036         cleanup
0037         exit 1
0038 }
0039 
0040 trap interrupt INT TERM EXIT
0041 trap child_died CHLD
0042 
0043 for x in `seq 0 $((NR_CPUS * 4))`; do
0044         log=`mktemp`
0045         logs=$logs\ $log
0046         ./fpsimd-test >$log &
0047         pids=$pids\ $!
0048 done
0049 
0050 # Wait for all child processes to be created:
0051 sleep 10
0052 
0053 while :; do
0054         kill -USR1 $pids
0055 done &
0056 pids=$pids\ $!
0057 
0058 wait
0059 
0060 exit 1