#[ -d /r ] && export ROOT=${ROOT:-/r}
export TMP=${TMP:-$ROOT/tmp}
export TESTSUITELOG=${TMP}/${TESTSUITE}.log
- if [[ -z $LOGDIRSET ]]; then
- export LOGDIR=${LOGDIR:-${TMP}/test_logs/}/$(date +%s)
- export LOGDIRSET=true
- fi
+ export LOGDIR=${LOGDIR:-${TMP}/test_logs/$(date +%s)}
+ export TESTLOG_PREFIX=$LOGDIR/$TESTSUITE
+
export HOSTNAME=${HOSTNAME:-$(hostname -s)}
if ! echo $PATH | grep -q $LUSTRE/utils; then
export PATH=$LUSTRE/utils:$PATH
rm -f $TMP/*active
}
+kernel_version() {
+ echo -n $((($1 << 16) | ($2 << 8) | $3))
+}
+
+export LINUX_VERSION=$(uname -r | sed -e "s/[-.]/ /3" -e "s/ .*//")
+export LINUX_VERSION_CODE=$(kernel_version ${LINUX_VERSION//\./ })
+
case `uname -r` in
2.4.*) EXT=".o"; USE_QUOTA=no; [ ! "$CLIENTONLY" ] && FSTYPE=ext3;;
*) EXT=".ko"; USE_QUOTA=yes;;
set_debug_size () {
local dz=${1:-$DEBUG_SIZE}
- local cpus=$(getconf _NPROCESSORS_CONF)
+ local cpus=$(($(cut -d "-" -f 2 /sys/devices/system/cpu/possible)+1))
# bug 19944, adjust size to be -gt num_possible_cpus()
# promise 2MB for every cpu at least
set_default_debug () {
local debug=${1:-"$PTLDEBUG"}
- local subsystem_debug=${2:-"$SUBSYSTEM"}
+ local subsys=${2:-"$SUBSYSTEM"}
local debug_size=${3:-$DEBUG_SIZE}
- lctl set_param debug="$debug"
- lctl set_param subsystem_debug="${subsystem_debug# }"
+ [ -n "$debug" ] && lctl set_param debug="$debug" >/dev/null
+ [ -n "$subsys" ] && lctl set_param subsystem_debug="${subsys# }" >/dev/null
- set_debug_size $debug_size
- sync
+ [ -n "$debug_size" ] && set_debug_size $debug_size > /dev/null
}
set_default_debug_nodes () {
do_nodes $clients "running=\\\$(grep -c $mnt' ' /proc/mounts);
if [ \\\$running -ne 0 ] ; then
echo Stopping client \\\$(hostname) $mnt opts:$force;
-lsof -t $mnt || need_kill=no;
+lsof $mnt || need_kill=no;
if [ "x$force" != "x" -a "x\\\$need_kill" != "xno" ]; then
pids=\\\$(lsof -t $mnt | sort -u);
if [ -n \\\"\\\$pids\\\" ]; then
kill -9 \\\$pids;
fi
fi;
-busy=\\\$(umount $force $mnt 2>&1 | grep -c "busy");
-if [ \\\$busy -ne 0 ] ; then
+while umount $force $mnt 2>&1 | grep -q "busy"; do
echo "$mnt is still busy, wait one second" && sleep 1;
- umount $force $mnt;
-fi
+done;
fi"
}
BREAK_ON_ERROR=$BREAK_ON_ERROR \
END_RUN_FILE=$END_RUN_FILE \
LOAD_PID_FILE=$LOAD_PID_FILE \
- TESTSUITELOG=$TESTSUITELOG \
+ TESTLOG_PREFIX=$TESTLOG_PREFIX \
run_${load}.sh" &
- CLIENT_LOAD_PIDS="$CLIENT_LOAD_PIDS $!"
+ 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 RESULT
local WAIT=0
- local sleep=5
+ local sleep=1
+ local print=10
while [ true ]; do
RESULT=$(do_node $node "$TEST")
if [ "$RESULT" == "$FINAL" ]; then
return 0
fi
[ $WAIT -ge $MAX ] && break
- echo "Waiting $((MAX - WAIT)) secs for update"
+ [ $((WAIT % print)) -eq 0 ] &&
+ echo "Waiting $((MAX - WAIT)) secs for update"
WAIT=$((WAIT + sleep))
sleep $sleep
done
$LFS osts $2 | sed -ne "/${1}/s/\(.*\): .* .*$/\1/p"
}
+mdtuuid_from_index()
+{
+ $LFS mdts $2 | awk '/^'$1'/ { print $2 }'
+}
+
remote_node () {
local node=$1
[ "$node" != "$(hostname)" ]
# dump lustre logs, dmesg
- prefix="$LOGDIR/${TESTSUITE}.${TESTNAME}"
+ prefix="$TESTLOG_PREFIX.$TESTNAME"
suffix="$ts.log"
echo "Dumping lctl log to ${prefix}.*.${suffix}"
fi
}
-cleanup_logs () {
- local list=${1:-$(comma_list $(nodes_list))}
-
- [ -n ${TESTSUITE} ] && do_nodes $list "rm -f $TMP/*${TESTSUITE}*" || true
-}
-
do_ls () {
local mntpt_root=$1
local num_mntpts=$2
mkdir -p $LOGDIR
init_clients_lists
- if check_shared_dir $LOGDIR; then
- touch $LOGDIR/shared
- echo "Logging to shared log directory: $LOGDIR"
- else
- echo "Logging to local directory: $LOGDIR"
- fi
+ if [ ! -f $YAML_LOG ]; then # If the yaml log already exists then we will just append to it
+ if check_shared_dir $LOGDIR; then
+ touch $LOGDIR/shared
+ echo "Logging to shared log directory: $LOGDIR"
+ else
+ echo "Logging to local directory: $LOGDIR"
+ fi
- yml_nodes_file $LOGDIR >> $YAML_LOG
- yml_results_file >> $YAML_LOG
+ yml_nodes_file $LOGDIR >> $YAML_LOG
+ yml_results_file >> $YAML_LOG
+ fi
umask $SAVE_UMASK
}