ssve-stress 691 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  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. for x in `seq 0 $((NR_CPUS * 4))`; do
  33. log=`mktemp`
  34. logs=$logs\ $log
  35. ./ssve-test >$log &
  36. pids=$pids\ $!
  37. done
  38. # Wait for all child processes to be created:
  39. sleep 10
  40. while :; do
  41. kill -USR1 $pids
  42. done &
  43. pids=$pids\ $!
  44. wait
  45. exit 1