# suppress dd xfer stat to workaround buggy coreutils/gettext
# combination in RHEL5 and OEL5, see BZ 21264
- FREE_SPACE=$($LFS df $TESTDIR|awk '/filesystem summary:/ {print $5}')
+ FREE_SPACE=$(df -P $TESTDIR | awk '/:/ { print $4 }')
BLKS=$((FREE_SPACE * 9 / 40 / CLIENT_COUNT))
echoerr "Total free disk space is $FREE_SPACE, 4k blocks to dd is $BLKS"
+ df $TESTDIR || true
dd bs=4k count=$BLKS status=noxfer if=/dev/zero of=$TESTDIR/dd-file \
- 1>$LOG &
- load_pid=$!
- wait $load_pid
-
+ 1>$LOG
if [ $? -eq 0 ]; then
echoerr "$(date +'%F %H:%M:%S'): dd succeeded"
cd $TMP
echoerr "$(date +'%F %H:%M:%S'): dd run finished"
else
echoerr "$(date +'%F %H:%M:%S'): dd failed"
- if [ -z "$ERRORS_OK" ]; then
+ if [ -z "$ERRORS_OK" ]; then
echo $(hostname) >> $END_RUN_FILE
fi
if [ $BREAK_ON_ERROR ]; then
. $(dirname $0)/functions.sh
-assert_env MOUNT END_RUN_FILE LOAD_PID_FILE LFS CLIENT_COUNT
+assert_env MOUNT END_RUN_FILE LOAD_PID_FILE LFS CLIENT_COUNT LCTL
trap signaled TERM
while [ ! -e "$END_RUN_FILE" ] && $CONTINUE; do
echoerr "$(date +'%F %H:%M:%S'): tar run starting"
mkdir -p $TESTDIR
+ cd $TESTDIR
+ sync
+
USAGE=$(du -s /etc | awk '{print $1}')
- FREE_SPACE=$($LFS df $TESTDIR | awk '/filesystem summary:/ {print $5}')
+ $LCTL set_param llite.*.lazystatfs=0
+ df $TESTDIR || true
+ sleep 2
+ FREE_SPACE=$(df $TESTDIR | awk '/:/ { print $4 }')
AVAIL=$((FREE_SPACE * 9 / 10 / CLIENT_COUNT))
if [ $AVAIL -lt $USAGE ]; then
echoerr "no enough free disk space: need $USAGE, avail $AVAIL"
break
fi
- cd $TESTDIR
-
- sync
- do_tar &
- wait $!
+ do_tar
RC=$?
PREV_ERRORS=$(grep "exit delayed from previous errors" $LOG) || true
if [ $RC -ne 0 -a "$ERRORS_OK" -a "$PREV_ERRORS" ]; then
}
start_client_load() {
- local client=$1
- local load=$2
- local var=$(node_var_name $client)_load
- eval export ${var}=$load
-
- do_node $client "PATH=$PATH MOUNT=$MOUNT ERRORS_OK=$ERRORS_OK \
-BREAK_ON_ERROR=$BREAK_ON_ERROR \
-END_RUN_FILE=$END_RUN_FILE \
-LOAD_PID_FILE=$LOAD_PID_FILE \
-TESTLOG_PREFIX=$TESTLOG_PREFIX \
-TESTNAME=$TESTNAME \
-DBENCH_LIB=$DBENCH_LIB \
-DBENCH_SRC=$DBENCH_SRC \
-CLIENT_COUNT=$((CLIENTCOUNT - 1)) \
-LFS=$LFS \
-run_${load}.sh" &
- local ppid=$!
- log "Started client load: ${load} on $client"
-
- # get the children process IDs
- local pids=$(ps --ppid $ppid -o pid= | xargs)
- CLIENT_LOAD_PIDS="$CLIENT_LOAD_PIDS $ppid $pids"
- return 0
+ local client=$1
+ local load=$2
+ local var=$(node_var_name $client)_load
+ eval export ${var}=$load
+
+ do_node $client "PATH=$PATH MOUNT=$MOUNT ERRORS_OK=$ERRORS_OK \
+ BREAK_ON_ERROR=$BREAK_ON_ERROR \
+ END_RUN_FILE=$END_RUN_FILE \
+ LOAD_PID_FILE=$LOAD_PID_FILE \
+ TESTLOG_PREFIX=$TESTLOG_PREFIX \
+ TESTNAME=$TESTNAME \
+ DBENCH_LIB=$DBENCH_LIB \
+ DBENCH_SRC=$DBENCH_SRC \
+ CLIENT_COUNT=$((CLIENTCOUNT - 1)) \
+ LFS=$LFS \
+ LCTL=$LCTL \
+ FSNAME=$FSNAME \
+ run_${load}.sh" &
+ local ppid=$!
+ log "Started client load: ${load} on $client"
+
+ # get the children process IDs
+ local pids=$(ps --ppid $ppid -o pid= | xargs)
+ CLIENT_LOAD_PIDS="$CLIENT_LOAD_PIDS $ppid $pids"
+ return 0
}
start_client_loads () {