1#!/bin/bash 2# SPDX-License-Identifier: GPL-2.0-only 3# Copyright (C) 2015-2019 ARM Limited. 4# Original author: Dave Martin <Dave.Martin@arm.com> 5 6set -ue 7 8NR_CPUS=`nproc` 9 10pids= 11logs= 12 13cleanup () { 14 trap - INT TERM CHLD 15 set +e 16 17 if [ -n "$pids" ]; then 18 kill $pids 19 wait $pids 20 pids= 21 fi 22 23 if [ -n "$logs" ]; then 24 cat $logs 25 rm $logs 26 logs= 27 fi 28} 29 30interrupt () { 31 cleanup 32 exit 0 33} 34 35child_died () { 36 cleanup 37 exit 1 38} 39 40trap interrupt INT TERM EXIT 41 42for x in `seq 0 $((NR_CPUS * 4))`; do 43 log=`mktemp` 44 logs=$logs\ $log 45 ./ssve-test >$log & 46 pids=$pids\ $! 47done 48 49# Wait for all child processes to be created: 50sleep 10 51 52while :; do 53 kill -USR1 $pids 54done & 55pids=$pids\ $! 56 57wait 58 59exit 1 60