fpsimd-stress 714 B

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