#!/bin/sh
-export PATH=/sbin:/usr/sbin:$PATH
-
SRCDIR="`dirname $0`/"
-. $SRCDIR/common.sh
+export PATH=/sbin:/usr/sbin:$SRCDIR/../utils:$PATH
+
+COUNT=${COUNT:-100000}
+COUNT_10=`expr $COUNT / 10`
+COUNT_100=`expr $COUNT / 100`
+COUNT_1000=`expr $COUNT / 1000`
-OSCDEV="`$OBDCTL device_list 2> /dev/null | awk '/ osc | lov / { print $4 }' | tail -1`"
+ENDRUN=endrun-`hostname`
-if [ -z "$OSCDEV" ]; then
- echo "$0: needs an OSC set up first" 1>&2
+ECHONAME="`lctl device_list 2> /dev/null | awk '/ echo_client / { print $4 }' | tail -n 1`"
+
+if [ -z "$ECHONAME" ]; then
+ echo "$0: needs an ECHO_CLIENT set up first" 1>&2
exit 1
fi
+cleanup () {
+ lctl --device \$$ECHONAME destroy $OID
+}
+
runthreads() {
THR=$1
DO=$2
DO=test_brw
RW=w
;;
-
test_brw_read)
DO=test_brw
RW=r
;;
esac
- $OBDCTL --threads $THR v \$$OSCDEV $DO $CNT $RW $V $PGS $OID || exit 1
+ lctl --threads $THR v \$$ECHONAME $DO $CNT $RW $V $PGS $OID || exit 1
- if [ -e endrun ]; then
- rm endrun
- echo "exiting because endrun file was found"
- exit 0
+ if [ -e $ENDRUN ]; then
+ rm $ENDRUN
+ echo "exiting because $ENDRUN file was found"
+ cleanup
fi
}
-OID=`$OBDCTL --device \$$OSCDEV create 1 | awk '/is object id/ { print $6 }'`
+[ -z "$OID" ] && OID=`lctl --device \\$$ECHONAME create 1 | awk '/is object id/ { print $6 }'` && echo "created object $OID"
+[ -z "$OID" ] && echo "error creating object" 1>&2 && exit 1
# TODO: obdctl needs to check on the progress of each forked thread
# (IPC SHM, sockets?) to see if it hangs.
;;
test_brw_write)
PG=1
- PGV=16
+ PGV=${PGV:-16}
;;
-
test_brw_read)
PG=1
- case $OSTNODE in
- ba*) PGV= ;; # disabled until the BA OST code is updated
- *) PGV=16 ;;
- esac
+ PGV=${PGV:-16}
;;
esac
runthreads 1 $CMD 1 1 $PG
runthreads 1 $CMD 100 1 $PG
- debug_server_off
- debug_client_off
- runthreads 1 $CMD 10000 100 $PG
- [ "$PGV" ] && runthreads 1 $CMD 1000 100 $PGV
+ echo 0 > /proc/sys/portals/debug
+ runthreads 1 $CMD $COUNT_100 -10 $PG
+ [ "$PGV" ] && runthreads 1 $CMD $COUNT_1000 -10 $PGV
- runthreads 1 $CMD 1000000 -30 $PG
- [ "$PGV" ] && runthreads 1 $CMD 100000 -30 $PGV
-
- runthreads 1 $CMD 100 1 $PG
+ runthreads 1 $CMD $COUNT -30 $PG
+ [ "$PGV" ] && runthreads 1 $CMD $COUNT_10 -30 $PGV
- runthreads 2 $CMD 10000 100 $PG
- [ "$PGV" ] && runthreads 2 $CMD 1000 100 $PGV
+ runthreads 2 $CMD $COUNT_100 -30 $PG
+ [ "$PGV" ] && runthreads 2 $CMD $COUNT_1000 -30 $PGV
- runthreads 2 $CMD 1000000 -30 $PG
- [ "$PGV" ] && runthreads 2 $CMD 100000 -30 $PGV
+ runthreads 2 $CMD $COUNT -30 $PG
+ [ "$PGV" ] && runthreads 2 $CMD $COUNT_10 -30 $PGV
- runthreads 10 $CMD 10000 1000 $PG
- [ "$PGV" ] && runthreads 10 $CMD 1000 1000 $PGV
+ runthreads 10 $CMD $COUNT_10 -30 $PG
+ [ "$PGV" ] && runthreads 10 $CMD $COUNT_100 -30 $PGV
- runthreads 100 $CMD 10000 -30 $PG
+ runthreads 100 $CMD $COUNT_100 -30 $PG
+ [ "$PGV" ] && runthreads 100 $CMD $COUNT_1000 -30 $PGV
done
-$OBDCTL --device \$$OSCDEV destroy $OID
+lctl --device \$$ECHONAME destroy $OID