Skip to content

Commit 25f47e3

Browse files
brooniewilldeacon
authored andcommitted
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>
1 parent fc7e611 commit 25f47e3

2 files changed

Lines changed: 119 additions & 0 deletions

File tree

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
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
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
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

0 commit comments

Comments
 (0)