Commit 99c80a96 authored by Paul E. McKenney's avatar Paul E. McKenney
Browse files

torture: Compress KCSAN as well as KASAN vmlinux files



Compressing KASAN vmlinux files reduces torture.sh res file size from
about 100G to about 50G, which is good, but the KCSAN vmlinux files
are also large.  Compressing them reduces their size from about 700M to
about 100M (but of course your mileage may vary).  This commit therefore
compresses both KASAN and KCSAN vmlinux files.

Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
parent 9a32ed1c
Loading
Loading
Loading
Loading
+9 −9
Original line number Diff line number Diff line
@@ -37,7 +37,7 @@ configs_scftorture=
kcsan_kmake_args=

# Default compression, duration, and apportionment.
compress_kasan_vmlinux="`identify_qemu_vcpus`"
compress_concurrency="`identify_qemu_vcpus`"
duration_base=10
duration_rcutorture_frac=7
duration_locktorture_frac=1
@@ -67,7 +67,7 @@ function doyesno () {

usage () {
	echo "Usage: $scriptname optional arguments:"
	echo "       --compress-kasan-vmlinux concurrency"
	echo "       --compress-concurrency concurrency"
	echo "       --configs-rcutorture \"config-file list w/ repeat factor (3*TINY01)\""
	echo "       --configs-locktorture \"config-file list w/ repeat factor (10*LOCK01)\""
	echo "       --configs-scftorture \"config-file list w/ repeat factor (2*CFLIST)\""
@@ -91,9 +91,9 @@ usage () {
while test $# -gt 0
do
	case "$1" in
	--compress-kasan-vmlinux)
		checkarg --compress-kasan-vmlinux "(concurrency level)" $# "$2" '^[0-9][0-9]*$' '^error'
		compress_kasan_vmlinux=$2
	--compress-concurrency)
		checkarg --compress-concurrency "(concurrency level)" $# "$2" '^[0-9][0-9]*$' '^error'
		compress_concurrency=$2
		shift
		;;
	--config-rcutorture|--configs-rcutorture)
@@ -435,11 +435,11 @@ then
	echo "  All bugs were KCSAN failures."
fi
tdir="`cat $T/successes $T/failures | head -1 | awk '{ print $NF }' | sed -e 's,/[^/]\+/*$,,'`"
if test -n "$tdir" && test $compress_kasan_vmlinux -gt 0
if test -n "$tdir" && test $compress_concurrency -gt 0
then
	# KASAN vmlinux files can approach 1GB in size, so compress them.
	echo Looking for KASAN files to compress: `date` > "$tdir/log-xz" 2>&1
	find "$tdir" -type d -name '*-kasan' -print > $T/xz-todo
	echo Looking for K[AC]SAN files to compress: `date` > "$tdir/log-xz" 2>&1
	find "$tdir" -type d -name '*-k[ac]san' -print > $T/xz-todo
	ncompresses=0
	batchno=1
	if test -s $T/xz-todo
@@ -457,7 +457,7 @@ then
			do
				xz "$j" >> "$tdir/log-xz" 2>&1 &
				ncompresses=$((ncompresses+1))
				if test $ncompresses -ge $compress_kasan_vmlinux
				if test $ncompresses -ge $compress_concurrency
				then
					echo Waiting for batch $batchno of $ncompresses compressions `date` | tee -a "$tdir/log-xz" | tee -a $T/log
					wait