Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

selftests: arm64: Add wrapper scripts for stress tests

Add wrapper scripts which invoke fpsimd-test and sve-test with several
copies per CPU such that the context switch code will be appropriately
exercised.

Signed-off-by: Mark Brown <broonie@kernel.org>
Acked-by: Dave Martin <Dave.Martin@arm.com>
Acked-by: Shuah Khan <skhan@linuxfoundation.org>
Link: https://lore.kernel.org/r/20200819114837.51466-6-broonie@kernel.org
Signed-off-by: Will Deacon <will@kernel.org>

authored by

Mark Brown and committed by
Will Deacon
25f47e3e fc7e611f

+119
+60
tools/testing/selftests/arm64/fp/fpsimd-stress
··· 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 + 6 + set -ue 7 + 8 + NR_CPUS=`nproc` 9 + 10 + pids= 11 + logs= 12 + 13 + cleanup () { 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 + 30 + interrupt () { 31 + cleanup 32 + exit 0 33 + } 34 + 35 + child_died () { 36 + cleanup 37 + exit 1 38 + } 39 + 40 + trap interrupt INT TERM EXIT 41 + trap child_died CHLD 42 + 43 + for x in `seq 0 $((NR_CPUS * 4))`; do 44 + log=`mktemp` 45 + logs=$logs\ $log 46 + ./fpsimd-test >$log & 47 + pids=$pids\ $! 48 + done 49 + 50 + # Wait for all child processes to be created: 51 + sleep 10 52 + 53 + while :; do 54 + kill -USR1 $pids 55 + done & 56 + pids=$pids\ $! 57 + 58 + wait 59 + 60 + exit 1
+59
tools/testing/selftests/arm64/fp/sve-stress
··· 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 + 6 + set -ue 7 + 8 + NR_CPUS=`nproc` 9 + 10 + pids= 11 + logs= 12 + 13 + cleanup () { 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 + 30 + interrupt () { 31 + cleanup 32 + exit 0 33 + } 34 + 35 + child_died () { 36 + cleanup 37 + exit 1 38 + } 39 + 40 + trap interrupt INT TERM EXIT 41 + 42 + for x in `seq 0 $((NR_CPUS * 4))`; do 43 + log=`mktemp` 44 + logs=$logs\ $log 45 + ./sve-test >$log & 46 + pids=$pids\ $! 47 + done 48 + 49 + # Wait for all child processes to be created: 50 + sleep 10 51 + 52 + while :; do 53 + kill -USR1 $pids 54 + done & 55 + pids=$pids\ $! 56 + 57 + wait 58 + 59 + exit 1