Commit f121fbbd authored by Paul E. McKenney's avatar Paul E. McKenney Committed by Frederic Weisbecker
Browse files

rcutorture: Permit kvm-again.sh to re-use the build directory



This commit adds "inplace" and "inplace-force" values to the kvm-again.sh
"--link" argument, which causes the run's output to be placed into the
build directory.  This could be used to save build time if the machine
went down partway into a run, but it can also be used to do a large
number of builds, and run the resulting kernels concurrently even if the
builds are based on different commits.  A later commit will add this
latter capability to kvm-series.sh in order to produce large speedups
for branch-checking operations.

Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
Signed-off-by: default avatarFrederic Weisbecker <frederic@kernel.org>
parent 515a48fe
Loading
Loading
Loading
Loading
+40 −16
Original line number Diff line number Diff line
@@ -31,7 +31,7 @@ fi
if ! cp "$oldrun/scenarios" $T/scenarios.oldrun
then
	# Later on, can reconstitute this from console.log files.
	echo Prior run batches file does not exist: $oldrun/batches
	echo Prior run scenarios file does not exist: $oldrun/scenarios
	exit 1
fi

@@ -68,7 +68,7 @@ usage () {
	echo "       --datestamp string"
	echo "       --dryrun"
	echo "       --duration minutes | <seconds>s | <hours>h | <days>d"
	echo "       --link hard|soft|copy"
	echo "       --link hard|soft|copy|inplace|inplace-force"
	echo "       --remote"
	echo "       --rundir /new/res/path"
	echo "Command line: $scriptname $args"
@@ -121,7 +121,7 @@ do
		shift
		;;
	--link)
		checkarg --link "hard|soft|copy" "$#" "$2" 'hard\|soft\|copy' '^--'
		checkarg --link "hard|soft|copy|inplace|inplace-force" "$#" "$2" 'hard\|soft\|copy\|inplace\|inplace-force' '^--'
		case "$2" in
		copy)
			arg_link="cp -R"
@@ -132,6 +132,14 @@ do
		soft)
			arg_link="cp -Rs"
			;;
		inplace)
			arg_link="inplace"
			rundir="$oldrun"
			;;
		inplace-force)
			arg_link="inplace-force"
			rundir="$oldrun"
			;;
		esac
		shift
		;;
@@ -172,6 +180,8 @@ fi

echo ---- Re-run results directory: $rundir

if test "$oldrun" != "$rundir"
then
	# Copy old run directory tree over and adjust.
	mkdir -p "`dirname "$rundir"`"
	if ! $arg_link "$oldrun" "$rundir"
@@ -187,6 +197,20 @@ if ! test -d "$rundir/../../bin"
	then
		$arg_link "$oldrun/../../bin" "$rundir/../.."
	fi
else
	# Check for a run having already happened.
	find "$rundir" -name console.log -print > $T/oldrun-console.log
	if test -s $T/oldrun-console.log
	then
		echo Run already took place in $rundir
		if test "$arg_link" = inplace
		then
			usage
		fi
	fi
fi

# Find runs to be done based on their qemu-cmd files.
for i in $rundir/*/qemu-cmd
do
	cp "$i" $T