}
run_test 28 "read/write/truncate file with lost stripes"
-test_29() { # bug 10999
- touch $DIR1/$tfile
- #define OBD_FAIL_LDLM_GLIMPSE 0x30f
- lctl set_param fail_loc=0x8000030f
- ls -l $DIR2/$tfile &
- usleep 500
- dd if=/dev/zero of=$DIR1/$tfile bs=4k count=1
- wait
-}
-#bug 11549 - permanently turn test off in b1_5
-run_test 29 "lock put race between glimpse and enqueue ========="
-
-test_30() { #bug #11110, LU-2523
+test_30() { #b=11110, LU-2523
test_mkdir $DIR1/$tdir
cp -f /bin/bash $DIR1/$tdir/bash
/bin/sh -c 'sleep 1; rm -f $DIR2/$tdir/bash; cp /bin/bash $DIR2/$tdir' &
wait
true
}
-
run_test 30 "recreate file race"
test_31a() {
local client1=${CLIENT1:-$(hostname)}
local myRUNAS="$3"
+ local np=$(check_cpt_number ost1)
+ [ $np -gt 0 ] || error "CPU partitions should not be $np."
+ echo "cpu_npartitions on ost1 is $np"
+
mkdir $dir || error "mkdir $dir failed"
- $LFS setstripe -c 1 $dir || error "setstripe to $dir failed"
+ $LFS setstripe -c 1 -i 0 $dir || error "setstripe to $dir failed"
chmod 777 $dir
trap cleanup_tbf_verify EXIT
echo "Limited write rate: $1, read rate: $2"
echo "Verify the write rate is under TBF control"
- local runtime=$(do_node $client1 $myRUNAS dd if=/dev/zero of=$dir/tbf \
- bs=1M count=100 oflag=direct 2>&1 | awk '/bytes/ {print $6}')
+ local start=$SECONDS
+ do_node $client1 $myRUNAS dd if=/dev/zero of=$dir/tbf \
+ bs=1M count=100 oflag=direct 2>&1
+ local runtime=$((SECONDS - start + 1))
local rate=$(bc <<< "scale=6; 100 / $runtime")
echo "Write runtime is $runtime s, speed is $rate IOPS"
- # verify the write rate does not exceed 110% of TBF limited rate
- [ $(bc <<< "$rate < 1.1 * $1") -eq 1 ] ||
- error "The write rate ($rate) exceeds 110% of preset rate ($1)"
+ # verify the write rate does not exceed TBF rate limit
+ [ $(bc <<< "$rate < 1.1 * $np * $1") -eq 1 ] ||
+ error "The write rate ($rate) exceeds 110% of rate limit ($1 * $np)"
cancel_lru_locks osc
echo "Verify the read rate is under TBF control"
- runtime=$(do_node $client1 $myRUNAS dd if=$dir/tbf of=/dev/null \
- bs=1M count=100 iflag=direct 2>&1 | awk '/bytes/ {print $6}')
+ start=$SECONDS
+ do_node $client1 $myRUNAS dd if=$dir/tbf of=/dev/null \
+ bs=1M count=100 iflag=direct 2>&1
+ runtime=$((SECONDS - start + 1))
rate=$(bc <<< "scale=6; 100 / $runtime")
echo "Read runtime is $runtime s, speed is $rate IOPS"
- # verify the read rate does not exceed 110% of TBF limited rate
- [ $(bc <<< "$rate < 1.1 * $2") -eq 1 ] ||
- error "The read rate ($rate) exceeds 110% of preset rate ($2)"
+ # verify the read rate does not exceed TBF rate limit
+ [ $(bc <<< "$rate < 1.1 * $np * $2") -eq 1 ] ||
+ error "The read rate ($rate) exceeds 110% of rate limit ($2 * $np)"
cancel_lru_locks osc
cleanup_tbf_verify || error "rm -rf $dir failed"