2 # SPDX-License-Identifier: GPL-2.0+
4 # Run SRCU-lockdep tests and report any that fail to meet expectations.
6 # Copyright (C) 2021 Meta Platforms, Inc.
8 # Authors: Paul E. McKenney <paulmck@kernel.org>
11 echo "Usage: $scriptname optional arguments:"
12 echo " --datestamp string"
16 ds
=`date +%Y.%m.%d-%H.%M.%S`-srcu_lockdep
19 T
="`mktemp -d ${TMPDIR-/tmp}/srcu_lockdep.sh.XXXXXX`"
22 RCUTORTURE
="`pwd`/tools/testing/selftests/rcutorture"; export RCUTORTURE
23 PATH
=${RCUTORTURE}/bin
:$PATH; export PATH
30 checkarg
--datestamp "(relative pathname)" "$#" "$2" '^[a-zA-Z0-9._/-]*$' '^--'
35 echo Unknown argument
$1
51 val
=$
((d
*1000+t
*10+c
))
52 tools
/testing
/selftests
/rcutorture
/bin
/kvm.sh
--allcpus --duration 5s
--configs "SRCU-P" --bootargs "rcutorture.test_srcu_lockdep=$val" --trust-make --datestamp "$ds/$val" > "$T/kvm.sh.out" 2>&1
54 mv "$T/kvm.sh.out" "$RCUTORTURE/res/$ds/$val"
55 if test "$d" -ne 0 && test "$ret" -eq 0
58 echo -n Unexpected success
for > "$RCUTORTURE/res/$ds/$val/kvm.sh.err"
60 if test "$d" -eq 0 && test "$ret" -ne 0
63 echo -n Unexpected failure
for > "$RCUTORTURE/res/$ds/$val/kvm.sh.err"
67 grep "rcu_torture_init_srcu_lockdep: test_srcu_lockdep = " "$RCUTORTURE/res/$ds/$val/SRCU-P/console.log" |
sed -e 's/^.*rcu_torture_init_srcu_lockdep://' >> "$RCUTORTURE/res/$ds/$val/kvm.sh.err"
68 cat "$RCUTORTURE/res/$ds/$val/kvm.sh.err"
74 if test "$nerrs" -ne 0