On Thu, 1 Mar 2012, Lukas Czerner wrote: > To cover cases when fstrim arguments are not block/block group/file > system size aligned, we can be a bit more random. This commit changes > fstrim argument computing to use $RANDOM bash variable in order to have > different minlen, start, len argument settings and change the full fs > fstrim to be called randomly as well. > > Also make kill and wait not complain about non existent process, since > it may have already finished before we attempt to kill it and wait for > it. No reason to fail the test. ping > > Signed-off-by: Lukas Czerner <lczerner@xxxxxxxxxx> > --- > v2: guess maximum minlen so we do not fail if milnen limitation > of the fs is too small. > > 251 | 36 +++++++++++++++++++++++++----------- > 1 files changed, 25 insertions(+), 11 deletions(-) > > diff --git a/251 b/251 > index fa3d74a..6d87bf4 100755 > --- a/251 > +++ b/251 > @@ -54,21 +54,21 @@ _cleanup() > > _destroy() > { > - kill $pids $fstrim_pid > - wait $pids $fstrim_pid > + kill $pids $fstrim_pid 2> /dev/null > + wait $pids $fstrim_pid 2> /dev/null > rm -rf $tmp > } > > _destroy_fstrim() > { > - kill $fpid > - wait $fpid > + kill $fpid 2> /dev/null > + wait $fpid 2> /dev/null > } > > _fail() > { > echo "$1" > - kill $mypid > + kill $mypid 2> /dev/null > } > > _check_fstrim_support() > @@ -76,6 +76,16 @@ _check_fstrim_support() > $here/src/fstrim -l 10M $SCRATCH_MNT &> /dev/null > } > > +_guess_max_minlen() > +{ > + mmlen=100000 > + while [ $mmlen -gt 1 ]; do > + $here/src/fstrim -l $(($mmlen*2))k -m ${mmlen}k $SCRATCH_MNT &> /dev/null && break > + mmlen=$(($mmlen/2)) > + done > + echo $mmlen > +} > + > ## > # Background FSTRIM loop. We are trimming the device in the loop and for > # test coverage, we are doing whole device trim followed by several smaller > @@ -85,15 +95,19 @@ fstrim_loop() > { > trap "_destroy_fstrim; exit \$status" 2 15 > fsize=$(df | grep $SCRATCH_MNT | grep $SCRATCH_DEV | awk '{print $2}') > + mmlen=$(_guess_max_minlen) > > while true ; do > - step=1048576 > - start=0 > - $here/src/fstrim $SCRATCH_MNT & > - fpid=$! > - wait $fpid > + step=$((RANDOM*$RANDOM)) > + minlen=$(((RANDOM*($RANDOM%2+1))%$mmlen)) > + start=$RANDOM > + if [ $((RANDOM%10)) -gt 7 ]; then > + $here/src/fstrim $SCRATCH_MNT & > + fpid=$! > + wait $fpid > + fi > while [ $start -lt $fsize ] ; do > - $here/src/fstrim -s ${start}k -l ${step}k $SCRATCH_MNT & > + $here/src/fstrim -m ${minlen}k -s ${start}k -l ${step}k $SCRATCH_MNT & > fpid=$! > wait $fpid > start=$(( $start + $step )) > -- _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs