61 lines · plain
1#!/bin/bash2# SPDX-License-Identifier: GPL-2.0-only3# Copyright (C) 2015-2019 ARM Limited.4# Original author: Dave Martin <Dave.Martin@arm.com>5 6set -ue7 8NR_CPUS=`nproc`9 10pids=11logs=12 13cleanup () {14 trap - INT TERM CHLD15 set +e16 17 if [ -n "$pids" ]; then18 kill $pids19 wait $pids20 pids=21 fi22 23 if [ -n "$logs" ]; then24 cat $logs25 rm $logs26 logs=27 fi28}29 30interrupt () {31 cleanup32 exit 033}34 35child_died () {36 cleanup37 exit 138}39 40trap interrupt INT TERM EXIT41trap child_died CHLD42 43for x in `seq 0 $((NR_CPUS * 4))`; do44 log=`mktemp`45 logs=$logs\ $log46 ./fpsimd-test >$log &47 pids=$pids\ $!48done49 50# Wait for all child processes to be created:51sleep 1052 53while :; do54 kill -USR1 $pids55done &56pids=$pids\ $!57 58wait59 60exit 161