Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  1) #!/bin/bash
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  2) # SPDX-License-Identifier: GPL-2.0+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  3) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  4) # Runs the C-language litmus tests specified on standard input, using up
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  5) # to the specified number of CPUs (defaulting to all of them) and placing
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  6) # the results in the specified directory (defaulting to the same place
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  7) # the litmus test came from).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  8) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  9) # sh runlitmushist.sh
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) # Run from the Linux kernel tools/memory-model directory.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) # This script uses environment variables produced by parseargs.sh.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) # Copyright IBM Corporation, 2018
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) # Author: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) T=/tmp/runlitmushist.sh.$$
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) trap 'rm -rf $T' 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) mkdir $T
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) if test -d litmus
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) then
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) 	:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) 	echo Directory \"litmus\" missing, aborting run.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) 	exit 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) fi
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) # Prefixes for per-CPU scripts
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) for ((i=0;i<$LKMM_JOBS;i++))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) do
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) 	echo dir="$LKMM_DESTDIR" > $T/$i.sh
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) 	echo T=$T >> $T/$i.sh
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) 	echo herdoptions=\"$LKMM_HERD_OPTIONS\" >> $T/$i.sh
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) 	cat << '___EOF___' >> $T/$i.sh
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) 	runtest () {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) 		echo ' ... ' /usr/bin/time $LKMM_TIMEOUT_CMD herd7 $herdoptions $1 '>' $dir/$1.out '2>&1'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) 		if /usr/bin/time $LKMM_TIMEOUT_CMD herd7 $herdoptions $1 > $dir/$1.out 2>&1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) 		then
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) 			if ! grep -q '^Observation ' $dir/$1.out
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) 			then
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) 				echo ' !!! Herd failed, no Observation:' $1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) 			fi
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) 		else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) 			exitcode=$?
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) 			if test "$exitcode" -eq 124
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) 			then
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) 				exitmsg="timed out"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) 			else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) 				exitmsg="failed, exit code $exitcode"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) 			fi
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) 			echo ' !!! Herd' ${exitmsg}: $1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) 		fi
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) 	}
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) ___EOF___
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) done
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) awk -v q="'" -v b='\\' '
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) 	print "echo `grep " q "^P[0-9]" b "+(" q " " $0 " | tail -1 | sed -e " q "s/^P" b "([0-9]" b "+" b ")(.*$/" b "1/" q "` " $0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) }' | bash |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) sort -k1n |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) awk -v ncpu=$LKMM_JOBS -v t=$T '
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) 	print "runtest " $2 >> t "/" NR % ncpu ".sh";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) END {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) 	for (i = 0; i < ncpu; i++) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) 		print "sh " t "/" i ".sh > " t "/" i ".sh.out 2>&1 &";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) 		close(t "/" i ".sh");
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) 	}
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) 	print "wait";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) }' | sh
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) cat $T/*.sh.out
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) if grep -q '!!!' $T/*.sh.out
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) then
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) 	echo ' ---' Summary: 1>&2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) 	grep '!!!' $T/*.sh.out 1>&2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) 	nfail="`grep '!!!' $T/*.sh.out | wc -l`"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) 	echo 'Number of failed herd7 runs (e.g., timeout): ' $nfail 1>&2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) 	exit 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) 	echo All runs completed successfully. 1>&2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86) 	exit 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) fi