Whamcloud - gitweb
Use $TMP variable, if set, for storing temp loopback files.
[fs/lustre-release.git] / lustre / tests / runregression-brw.sh
1 #!/bin/sh
2 export PATH=/sbin:/usr/sbin:$PATH
3
4 SRCDIR="`dirname $0`/"
5 . $SRCDIR/common.sh
6
7 ENDRUN=endrun-`hostname`
8
9 OSCNAME="`$OBDCTL device_list 2> /dev/null | awk '/ UP osc / { print $4 }'`"
10
11 if [ -z "$OSCNAME" ]; then
12         echo "$0: needs an OSC set up first" 1>&2
13         exit 1
14 fi
15
16 runthreads() {
17         THR=$1
18         DO=$2
19         CNT=$3
20         V=$4
21         PGS=$5
22
23         case $DO in
24         test_getattr)
25                 RW=
26                 ;;
27         test_brw_write)
28                 DO=test_brw
29                 RW=w
30                 ;;
31
32         test_brw_read)
33                 DO=test_brw
34                 RW=r
35                 ;;
36         esac
37
38         $OBDCTL --threads $THR v \$$OSCNAME $DO $CNT $RW $V $PGS $OID || exit 1
39
40         if [ -e $ENDRUN ]; then
41                 rm $ENDRUN
42                 echo "exiting because $ENDRUN file was found"
43                 exit 0
44         fi
45 }
46
47 [ -z "$OID" ] && OID=`$OBDCTL --device \\$$OSCNAME create 1 | awk '/is object id/ { print $6 }'`
48 [ -z "$OID" ] && echo "error creating object" 1>&2 && exit 1
49
50 # TODO: obdctl needs to check on the progress of each forked thread
51 #       (IPC SHM, sockets?) to see if it hangs.
52 while date; do
53         PG=1
54         PGVW=16
55         PGVR=16
56
57         # We use '--threads 1 X' instead of '--device X' so that
58         # obdctl can monitor the forked thread for progress (TODO).
59         debug_server_off
60         debug_client_off
61         runthreads 1 test_brw_write 1000 -30 $PG
62         runthreads 1 test_brw_read 1000 -30 $PG
63
64         [ "$PGVW" ] && runthreads 1 test_brw_write 100 -30 $PGVW
65         [ "$PGVW" ] && runthreads 1 test_brw_read 1600 -30 $PG
66         [ "$PGVR" ] && runthreads 1 test_brw_read 100 -30 $PGVR
67
68         runthreads 1 test_brw_write 10000000 -30 $PG
69         runthreads 1 test_brw_read 10000000 -30 $PG
70
71         [ "$PGVW" ] && runthreads 1 test_brw_write 1000000 -30 $PGVW
72         [ "$PGVW" ] && runthreads 1 test_brw_read 16000000 -30 $PG
73         [ "$PGVR" ] && runthreads 1 test_brw_read 1000000 -30 $PGVR
74
75         runthreads 2 test_brw_write 10000000 -30 $PG
76         runthreads 2 test_brw_read 10000000 -30 $PG
77
78         [ "$PGVW" ] && runthreads 2 test_brw_write 1000000 -30 $PGVW
79         [ "$PGVW" ] && runthreads 1 test_brw_read 16000000 -30 $PG
80         [ "$PGVR" ] && runthreads 2 test_brw_read 1000000 -30 $PGVR
81
82         runthreads 10 test_brw_write 1000000 -30 $PG
83         runthreads 1 test_brw_read 16000000 -30 $PG
84         runthreads 10 test_brw_read 1000000 -30 $PG
85
86         [ "$PGVW" ] && runthreads 10 test_brw_write 100000 -60 $PGVW
87         [ "$PGVW" ] && runthreads 1 test_brw_read 1600000 -30 $PG
88         [ "$PGVR" ] && runthreads 10 test_brw_read 100000 -60 $PGVR
89
90         runthreads 32 test_brw_write 1000000 -30 $PG
91         runthreads 1 test_brw_read 16000000 -30 $PG
92         runthreads 32 test_brw_read 1000000 -30 $PG
93
94         [ "$PGVW" ] && runthreads 32 test_brw_write 100000 -60 $PGVW
95         [ "$PGVW" ] && runthreads 1 test_brw_read 1600000 -30 $PG
96         [ "$PGVR" ] && runthreads 32 test_brw_read 100000 -60 $PGVR
97
98         runthreads 64 test_brw_write 1000000 -30 $PG
99         runthreads 1 test_brw_read 16000000 -30 $PG
100         runthreads 64 test_brw_read 1000000 -30 $PG
101
102         [ "$PGVW" ] && runthreads 64 test_brw_write 100000 -60 $PGVW
103         [ "$PGVW" ] && runthreads 1 test_brw_read 1600000 -30 $PG
104         [ "$PGVR" ] && runthreads 64 test_brw_read 100000 -60 $PGVR
105
106         runthreads 100 test_brw_write 100000 -60 $PG
107         runthreads 1 test_brw_read 1600000 -30 $PG
108         runthreads 100 test_brw_read 100000 -60 $PG
109
110         [ "$PGVW" ] && runthreads 100 test_brw_write 100000 -60 $PGVW
111         [ "$PGVW" ] && runthreads 1 test_brw_read 1600000 -30 $PG
112         [ "$PGVR" ] && runthreads 100 test_brw_read 100000 -60 $PGVR
113 done
114
115 $OBDCTL --device \$$OSCNAME destroy $OID