#!/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`
+
+ENDRUN=endrun-`hostname`
-setup_opts $@
+ECHONAME="`lctl device_list 2> /dev/null | awk '/ echo_client / { print $4 }' | tail -n 1`"
-setup_portals
-setup_lustre
+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
}
-setup_server || exit -1
-setup_client || exit -1
-
-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/lnet/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 $COUNT -30 $PG
+ [ "$PGV" ] && runthreads 1 $CMD $COUNT_10 -30 $PGV
- debug_server_on
- debug_client_on
- runthreads 1 $CMD 100 1 $PG
+ runthreads 2 $CMD $COUNT_100 -30 $PG
+ [ "$PGV" ] && runthreads 2 $CMD $COUNT_1000 -30 $PGV
- debug_server_off
- debug_client_off
- runthreads 2 $CMD 10000 100 $PG
- [ "$PGV" ] && runthreads 2 $CMD 1000 100 $PGV
+ runthreads 2 $CMD $COUNT -30 $PG
+ [ "$PGV" ] && runthreads 2 $CMD $COUNT_10 -30 $PGV
- runthreads 2 $CMD 1000000 -30 $PG
- [ "$PGV" ] && runthreads 2 $CMD 100000 -30 $PGV
+ runthreads 10 $CMD $COUNT_10 -30 $PG
+ [ "$PGV" ] && runthreads 10 $CMD $COUNT_100 -30 $PGV
- runthreads 10 $CMD 10000 1000 $PG
- [ "$PGV" ] && runthreads 10 $CMD 1000 1000 $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
-
-cleanup_client || exit -1
-cleanup_server || exit -1
-cleanup_lustre
-cleanup_portals
+lctl --device \$$ECHONAME destroy $OID