X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Ftests%2Fsanity-benchmark.sh;h=35a58fc3773db28fdd4405dd836db8592bd645fb;hb=5e3345b6664767d2e7166baaf6ebd57b471a4f5f;hp=ee5711986b6e2f653c574317d3399514917439f0;hpb=48457868a02ae5a0407f304c9028f7e80e7fb574;p=fs%2Flustre-release.git diff --git a/lustre/tests/sanity-benchmark.sh b/lustre/tests/sanity-benchmark.sh index ee57119..35a58fc 100644 --- a/lustre/tests/sanity-benchmark.sh +++ b/lustre/tests/sanity-benchmark.sh @@ -8,17 +8,18 @@ set -e ONLY=${ONLY:-"$*"} -LUSTRE=${LUSTRE:-$(cd $(dirname $0)/..; echo $PWD)} +LUSTRE=${LUSTRE:-$(dirname $0)/..} . $LUSTRE/tests/test-framework.sh init_test_env $@ -. ${CONFIG:=$LUSTRE/tests/cfg/$NAME.sh} init_logging -# bug number: ALWAYS_EXCEPT="$SANITY_BENCHMARK_EXCEPT" +[ "$SLOW" = "no" ] && EXCEPT_SLOW="iozone" + +build_test_filter MAX_THREADS=${MAX_THREADS:-20} -RAMKB=`awk '/MemTotal:/ { print $2 }' /proc/meminfo` +RAMKB=$(awk '/MemTotal:/ { print $2 }' /proc/meminfo) if [ -z "$THREADS" ]; then THREADS=$((RAMKB / 16384)) [ $THREADS -gt $MAX_THREADS ] && THREADS=$MAX_THREADS @@ -31,9 +32,6 @@ DEBUG_OFF=${DEBUG_OFF:-"eval lctl set_param debug=\"$DEBUG_LVL\""} DEBUG_ON=${DEBUG_ON:-"eval lctl set_param debug=0x33f0484"} DIRECTIO=${DIRECTIO:-directio} -[ "$SLOW" = "no" ] && EXCEPT_SLOW="iozone" - -build_test_filter check_and_setup_lustre assert_DIR @@ -185,13 +183,15 @@ test_fsx() { FSX_COUNT=1000 local SPACE=`df -P $MOUNT | tail -n 1 | awk '{ print $4 }'` + check_set_fallocate + [ $SPACE -lt $FSX_SIZE ] && FSX_SIZE=$((SPACE * 3 / 4)) $DEBUG_OFF FSX_SEED=${FSX_SEED:-$RANDOM} rm -f $testfile $LFS setstripe -c -1 $testfile - CMD="fsx -c 50 -p 1000 -S $FSX_SEED -P $TMP -l $FSX_SIZE \ - -N $((FSX_COUNT * 100)) $FSXOPT $testfile" + CMD="$FSX -c 50 -p 1000 -S $FSX_SEED -P $TMP -l $FSX_SIZE \ + -N $((FSX_COUNT * 100)) $FSXOPT $testfile" echo "Using: $CMD" $CMD || error "fsx failed" rm -f $testfile @@ -199,6 +199,31 @@ test_fsx() { } run_test fsx "fsx" +test_fsx_partial_punch() { + local fsx_count=100000 + local testfile=$DIR/f0.fsxfile + local fsx_size=5407677 # upper bound file size + local fsx_seed=7919 + + check_set_fallocate + + rm -f $testfile + $LFS setstripe -c -1 $testfile + + # + # $fsx_seed, $fsx_count and $fsx_size combination almost + # always reproduces the LASSERT under LU-14640. Therefore these + # constants are used as reproducer vs using a random value and + # hoping it hits the error condition + # + CMD="$FSX -c 50 -p 1000 -S $fsx_seed -P $TMP -l $fsx_size \ + -N $fsx_count $testfile" + echo "Using: $CMD" + $CMD || error "fsx failed" + rm -f $testfile +} +run_test fsx_partial_punch "Verify fsx with partial punch via fallocate" + complete $SECONDS check_and_cleanup_lustre exit_status