#!/bin/bash
#set -x
+DIR="$1"
MAX_FILES=${MAX_FILES:-20}
-DIR=${DIR:-$1}
-DIR=${DIR:-"/mnt/lustre/racer"}
DURATION=${DURATION:-$((60*5))}
+MDSCOUNT=${MDSCOUNT:-1}
NUM_THREADS=${NUM_THREADS:-$2}
NUM_THREADS=${NUM_THREADS:-3}
+RACER_MAX_CLEANUP_WAIT=${RACER_MAX_CLEANUP_WAIT:-$DURATION}
+
mkdir -p $DIR
RACER_PROGS="file_create dir_create file_rm file_rename file_link file_symlink \
-file_list file_concat"
+file_list file_concat file_exec file_chown file_chmod file_mknod file_truncate \
+file_delxattr file_getxattr file_setxattr"
+
+if $RACER_ENABLE_REMOTE_DIRS || $RACER_ENABLE_STRIPED_DIRS; then
+ RACER_PROGS+=' dir_remote'
+fi
+
+if $RACER_ENABLE_MIGRATION; then
+ RACER_PROGS+=' dir_migrate'
+fi
racer_cleanup()
{
echo "racer cleanup"
for P in $RACER_PROGS; do
- killall $P.sh
+ killall -q $P.sh
done
trap 0
local TOT_WAIT=0
- local MAX_WAIT=$DURATION
local SHORT_WAIT=5
local rc
- while [[ $TOT_WAIT -le $MAX_WAIT ]]; do
+ while [[ $TOT_WAIT -le $RACER_MAX_CLEANUP_WAIT ]]; do
rc=0
echo sleeping $SHORT_WAIT sec ...
sleep $SHORT_WAIT
killall -0 $P.sh
[[ $? -eq 0 ]] && (( rc+=1 ))
done
+
+ # Kill dd processes to speedup cleanup
+ local pids=$(ps uax | grep "$DIR" | grep dd | grep -v grep |
+ awk '{print $2}')
+ for pid in $pids; do
+ kill $pid
+ done
+
if [[ $rc -eq 0 ]]; then
echo there should be NO racer processes:
- ps aux | grep -E "${RACER_PROGS// /|}"
+ ps uww -C "${RACER_PROGS// /.sh,}.sh"
return 0
fi
- echo -n "Waited $(( TOT_WAIT + SHORT_WAIT)), rc=$rc "
- (( SHORT_WAIT+=SHORT_WAIT ))
(( TOT_WAIT+=SHORT_WAIT ))
+ echo -n "Waited $TOT_WAIT, rc=$rc "
+ (( SHORT_WAIT+=SHORT_WAIT ))
done
- ps aux | grep -E "${RACER_PROGS// /|}"
+ ps uww -C "${RACER_PROGS// /.sh,}.sh"
return 1
}
# Check our to see whether our test DIR is still available.
df $DIR
(( RC+=$? ))
-if [ $RC -eq 0 ]; then
- echo "We survived $0 for $DURATION seconds."
-fi
+[ $RC -eq 0 ] && echo "We survived $0 for $DURATION seconds."
exit $RC