check_and_setup_lustre
-mkdir -p $BASEDIR
+MDSRATE_ENABLE_DNE=${MDSRATE_ENABLE_DNE:-false}
+if $MDSRATE_ENABLE_DNE; then
+ test_mkdir $BASEDIR
+ mdtcount_opt="--mdtcount $MDSCOUNT"
+else
+ mkdir $BASEDIR
+fi
+if $VERBOSE; then
+ debug_opt="--debug"
+fi
chmod 0777 $BASEDIR
mdsrate_STRIPEPARAMS=${mdsrate_STRIPEPARAMS:-${fs_STRIPEPARAMS:-"-c -1"}}
setstripe_getstripe $BASEDIR $mdsrate_STRIPEPARAMS
NUM_FILES=$IFree
fi
-generate_machine_file $NODES_TO_USE $MACHINEFILE || error "can not generate machinefile"
+generate_machine_file $NODES_TO_USE $MACHINEFILE ||
+ error "can not generate machinefile"
+
+p="$TMP/$TESTSUITE-$TESTNAME.parameters"
+save_lustre_params $(get_facets MDS) mdt.*.enable_remote_dir_gid > $p
+do_nodes $(comma_list $(mdts_nodes)) \
+ $LCTL set_param mdt.*.enable_remote_dir_gid=-1
# Make sure we start with a clean slate
rm -f ${LOG}
log "===== $0 ### 1 NODE CREATE ###"
COMMAND="${MDSRATE} ${MDSRATE_DEBUG} --create --time ${TIME_PERIOD}
- --nfiles ${NUM_FILES} --dir ${TESTDIR_SINGLE} --filefmt 'f%%d'"
+ --nfiles ${NUM_FILES} --dir ${TESTDIR_SINGLE} --filefmt 'f%%d'
+ $mdtcount_opt $debug_opt"
echo "+ ${COMMAND}"
mpi_run ${MACHINEFILE_OPTION} ${MACHINEFILE} -np 1 ${COMMAND} |
tee ${LOG}
if [ ${PIPESTATUS[0]} != 0 ]; then
[ -f $LOG ] && sed -e "s/^/log: /" $LOG
error_noexit "mdsrate create on single client failed, aborting"
+ restore_lustre_params < $p
mdsrate_cleanup $NUM_CLIENTS $MACHINEFILE $NUM_FILES \
$TESTDIR_SINGLE 'f%%d' --ignore
exit 1
if [ ${PIPESTATUS[0]} != 0 ]; then
[ -f $LOG ] && sed -e "s/^/log: /" $LOG
error_noexit "mdsrate create on multiple nodes failed, aborting"
+ restore_lustre_params < $p
mdsrate_cleanup $NUM_CLIENTS $MACHINEFILE $NUM_FILES \
$TESTDIR_MULTI 'f%%d' --ignore
exit 1
rmdir $TESTDIR_MULTI
fi
+restore_lustre_params < $p
rmdir $BASEDIR || true
rm -f $MACHINEFILE
check_and_cleanup_lustre
check_and_setup_lustre
-mkdir -p $BASEDIR
+MDSRATE_ENABLE_DNE=${MDSRATE_ENABLE_DNE:-false}
+if $MDSRATE_ENABLE_DNE; then
+ test_mkdir $BASEDIR
+ mdtcount_opt="--mdtcount $MDSCOUNT"
+else
+ mkdir $BASEDIR
+fi
+if $VERBOSE; then
+ debug_opt="--debug"
+fi
chmod 0777 $BASEDIR
mdsrate_STRIPEPARAMS=${mdsrate_STRIPEPARAMS:-${fs_STRIPEPARAMS:-"-i 0 -c 1"}}
setstripe_getstripe $BASEDIR $mdsrate_STRIPEPARAMS
NUM_FILES=$IFree
fi
-generate_machine_file $NODES_TO_USE $MACHINEFILE || error "can not generate machinefile"
+generate_machine_file $NODES_TO_USE $MACHINEFILE ||
+ error "can not generate machinefile"
+
+p="$TMP/$TESTSUITE-$TESTNAME.parameters"
+save_lustre_params $(get_facets MDS) mdt.*.enable_remote_dir_gid > $p
+do_nodes $(comma_list $(mdts_nodes)) \
+ $LCTL set_param mdt.*.enable_remote_dir_gid=-1
if [ -n "$NOSINGLE" ]; then
echo "NO Tests on single client."
log "===== $0 ### 1 NODE CREATE ###"
COMMAND="${MDSRATE} ${MDSRATE_DEBUG} --create --time ${TIME_PERIOD}
- --nfiles $NUM_FILES --dir ${TESTDIR_SINGLE} --filefmt 'f%%d'"
+ --nfiles $NUM_FILES --dir ${TESTDIR_SINGLE} --filefmt 'f%%d'
+ $mdtcount_opt $debug_opt"
echo "+ ${COMMAND}"
mpi_run ${MACHINEFILE_OPTION} ${MACHINEFILE} -np 1 ${COMMAND} |
tee ${LOG}
if [ ${PIPESTATUS[0]} != 0 ]; then
[ -f $LOG ] && sed -e "s/^/log: /" $LOG
error_noexit "mdsrate create on single client failed, aborting"
+ restore_lustre_params < $p
mdsrate_cleanup $NUM_CLIENTS $MACHINEFILE $NUM_FILES \
$TESTDIR_SINGLE 'f%%d' --ignore
exit 1
if [ ${PIPESTATUS[0]} != 0 ]; then
[ -f $LOG ] && sed -e "s/^/log: /" $LOG
error_noexit "mdsrate create on multiple nodes failed, aborting"
+ restore_lustre_params < $p
mdsrate_cleanup $((NUM_CLIENTS * THREADS_PER_CLIENT)) \
$MACHINEFILE $NUM_FILES \
$TESTDIR_MULTI 'f%%d' --ignore
fi
complete $SECONDS
+restore_lustre_params < $p
rmdir $BASEDIR || true
rm -f $MACHINEFILE
check_and_cleanup_lustre
check_and_setup_lustre
-mkdir -p $BASEDIR
+MDSRATE_ENABLE_DNE=${MDSRATE_ENABLE_DNE:-false}
+if $MDSRATE_ENABLE_DNE; then
+ test_mkdir $BASEDIR
+ mdtcount_opt="--mdtcount $MDSCOUNT"
+else
+ mkdir $BASEDIR
+fi
+if $VERBOSE; then
+ debug_opt="--debug"
+fi
chmod 0777 $BASEDIR
mdsrate_STRIPEPARAMS=${mdsrate_STRIPEPARAMS:-${fs_STRIPEPARAMS:-"-c 1"}}
setstripe_getstripe $BASEDIR $mdsrate_STRIPEPARAMS
NUM_FILES=$((IFree / NUM_DIRS))
fi
-generate_machine_file $NODES_TO_USE $MACHINEFILE || error "can not generate machinefile"
+generate_machine_file $NODES_TO_USE $MACHINEFILE ||
+ error "can not generate machinefile"
+
+p="$TMP/$TESTSUITE-$TESTNAME.parameters"
+save_lustre_params $(get_facets MDS) mdt.*.enable_remote_dir_gid > $p
+do_nodes $(comma_list $(mdts_nodes)) \
+ $LCTL set_param mdt.*.enable_remote_dir_gid=-1
DIRfmt="${BASEDIR}/lookup-%d"
log "===== $0 Test preparation: creating ${NUM_DIRS} dirs with ${NUM_FILES} files."
- COMMAND="${MDSRATE} ${MDSRATE_DEBUG} --mknod
- --ndirs ${NUM_DIRS} --dirfmt '${DIRfmt}'
- --nfiles ${NUM_FILES} --filefmt 'f%%d'"
+ COMMAND="${MDSRATE} ${MDSRATE_DEBUG} --mknod
+ --ndirs ${NUM_DIRS} --dirfmt '${DIRfmt}'
+ --nfiles ${NUM_FILES} --filefmt 'f%%d'
+ $mdtcount_opt $debug_opt"
echo "+" ${COMMAND}
# For files creation we can use -np equal to NUM_DIRS
# No lookup if error occurs on file creation, abort.
if [ ${PIPESTATUS[0]} != 0 ]; then
error_noexit "mdsrate file creation failed, aborting"
+ restore_lustre_params < $p
mdsrate_cleanup_all
exit 1
fi
if [ ${PIPESTATUS[0]} != 0 ]; then
[ -f $LOG ] && sed -e "s/^/log: /" $LOG
error_noexit "mdsrate lookup on single client failed, aborting"
+ restore_lustre_params < $p
mdsrate_cleanup_all
exit 1
fi
if [ ${PIPESTATUS[0]} != 0 ]; then
[ -f $LOG ] && sed -e "s/^/log: /" $LOG
error_noexit "mdsrate lookup on multiple nodes failed, aborting"
+ restore_lustre_params < $p
mdsrate_cleanup_all
exit 1
fi
fi
complete $SECONDS
+restore_lustre_params < $p
mdsrate_cleanup_all
rmdir $BASEDIR || true
rm -f $MACHINEFILE
check_and_setup_lustre
-mkdir -p $BASEDIR
+MDSRATE_ENABLE_DNE=${MDSRATE_ENABLE_DNE:-false}
+if $MDSRATE_ENABLE_DNE; then
+ test_mkdir $BASEDIR
+ mdtcount_opt="--mdtcount $MDSCOUNT"
+else
+ mkdir $BASEDIR
+fi
+if $VERBOSE; then
+ debug_opt="--debug"
+fi
chmod 0777 $BASEDIR
mdsrate_STRIPEPARAMS=${mdsrate_STRIPEPARAMS:-${fs_STRIPEPARAMS:-"-c 1"}}
setstripe_getstripe $BASEDIR $mdsrate_STRIPEPARAMS
NUM_FILES=$IFree
fi
-generate_machine_file $NODES_TO_USE $MACHINEFILE || error "can not generate machinefile"
+generate_machine_file $NODES_TO_USE $MACHINEFILE ||
+ error "can not generate machinefile"
+
+p="$TMP/$TESTSUITE-$TESTNAME.parameters"
+save_lustre_params $(get_facets MDS) mdt.*.enable_remote_dir_gid > $p
+do_nodes $(comma_list $(mdts_nodes)) \
+ $LCTL set_param mdt.*.enable_remote_dir_gid=-1
if [ -n "$NOCREATE" ]; then
echo "NOCREATE=$NOCREATE => no file creation."
if [ $NUM_CLIENTS -gt 50 ]; then
NUM_THREADS=$NUM_CLIENTS
fi
- COMMAND="${MDSRATE} ${MDSRATE_DEBUG} --mknod --dir ${TESTDIR}
- --nfiles ${NUM_FILES} --filefmt 'f%%d'"
+ COMMAND="${MDSRATE} ${MDSRATE_DEBUG} --mknod --dir ${TESTDIR}
+ --nfiles ${NUM_FILES} --filefmt 'f%%d'
+ $mdtcount_opt $debug_opt"
echo "+" ${COMMAND}
mpi_run ${MACHINEFILE_OPTION} ${MACHINEFILE} -np ${NUM_THREADS} \
${COMMAND} 2>&1
# No lockup if error occurs on file creation, abort.
if [ ${PIPESTATUS[0]} != 0 ]; then
error_noexit "mdsrate file creation failed, aborting"
+ restore_lustre_params < $p
mdsrate_cleanup $NUM_THREADS $MACHINEFILE $NUM_FILES \
$TESTDIR 'f%%d' --ignore
exit 1
if [ ${PIPESTATUS[0]} != 0 ]; then
[ -f $LOG ] && sed -e "s/^/log: /" $LOG
error_noexit "mdsrate lookup on single client failed, aborting"
+ restore_lustre_params < $p
mdsrate_cleanup $NUM_CLIENTS $MACHINEFILE $NUM_FILES \
$TESTDIR 'f%%d' --ignore
exit 1
if [ ${PIPESTATUS[0]} != 0 ]; then
[ -f $LOG ] && sed -e "s/^/log: /" $LOG
error_noexit "mdsrate lookup on multiple nodes failed, aborting"
+ restore_lustre_params < $p
mdsrate_cleanup $NUM_CLIENTS $MACHINEFILE $NUM_FILES \
$TESTDIR 'f%%d' --ignore
exit 1
fi
complete $SECONDS
+restore_lustre_params < $p
mdsrate_cleanup $NUM_CLIENTS $MACHINEFILE $NUM_FILES $TESTDIR 'f%%d'
rmdir $BASEDIR || true
rm -f $MACHINEFILE
check_and_setup_lustre
-mkdir -p $BASEDIR
+MDSRATE_ENABLE_DNE=${MDSRATE_ENABLE_DNE:-false}
+if $MDSRATE_ENABLE_DNE; then
+ test_mkdir $BASEDIR
+ mdtcount_opt="--mdtcount $MDSCOUNT"
+else
+ mkdir $BASEDIR
+fi
+if $VERBOSE; then
+ debug_opt="--debug"
+fi
chmod 0777 $BASEDIR
mdsrate_STRIPEPARAMS=${mdsrate_STRIPEPARAMS:-${fs_STRIPEPARAMS:-"-c -1"}}
setstripe_getstripe $BASEDIR $mdsrate_STRIPEPARAMS
NUM_FILES=$IFree
fi
-generate_machine_file $NODES_TO_USE $MACHINEFILE || error "can not generate machinefile"
+generate_machine_file $NODES_TO_USE $MACHINEFILE ||
+ error "can not generate machinefile"
+
+p="$TMP/$TESTSUITE-$TESTNAME.parameters"
+save_lustre_params $(get_facets MDS) mdt.*.enable_remote_dir_gid > $p
+do_nodes $(comma_list $(mdts_nodes)) \
+ $LCTL set_param mdt.*.enable_remote_dir_gid=-1
if [ -n "$NOCREATE" ]; then
echo "NOCREATE=$NOCREATE => no file creation."
log "===== $0 Test preparation: creating ${NUM_FILES} files."
- COMMAND="${MDSRATE} ${MDSRATE_DEBUG} --create --dir ${TESTDIR}
- --nfiles ${NUM_FILES} --filefmt 'f%%d'"
- echo "+" ${COMMAND}
+ COMMAND="${MDSRATE} ${MDSRATE_DEBUG} --create --dir ${TESTDIR}
+ --nfiles ${NUM_FILES} --filefmt 'f%%d'
+ $mdtcount_opt $debug_opt"
+ echo "+" ${COMMAND}
NUM_CLIENTS=$(get_node_count ${NODES_TO_USE//,/ })
NUM_THREADS=$((NUM_CLIENTS * MDSCOUNT))
if [ ${PIPESTATUS[0]} != 0 ]; then
[ -f $LOG ] && sed -e "s/^/log: /" $LOG
error_noexit "mdsrate stat on single client failed, aborting"
+ restore_lustre_params < $p
mdsrate_cleanup $NUM_CLIENTS $MACHINEFILE $NUM_FILES \
$TESTDIR 'f%%d' --ignore
exit 1
if [ ${PIPESTATUS[0]} != 0 ]; then
[ -f $LOG ] && sed -e "s/^/log: /" $LOG
error_noexit "mdsrate stat on multiple nodes failed, aborting"
+ restore_lustre_params < $p
mdsrate_cleanup $NUM_CLIENTS $MACHINEFILE $NUM_FILES \
$TESTDIR 'f%%d' --ignore
exit 1
complete $SECONDS
+restore_lustre_params < $p
mdsrate_cleanup $NUM_CLIENTS $MACHINEFILE $NUM_FILES $TESTDIR 'f%%d'
rmdir $BASEDIR || true
rm -f $MACHINEFILE
check_and_setup_lustre
-mkdir -p $BASEDIR
+MDSRATE_ENABLE_DNE=${MDSRATE_ENABLE_DNE:-false}
+if $MDSRATE_ENABLE_DNE; then
+ test_mkdir $BASEDIR
+ mdtcount_opt="--mdtcount $MDSCOUNT"
+else
+ mkdir $BASEDIR
+fi
+if $VERBOSE; then
+ debug_opt="--debug"
+fi
chmod 0777 $BASEDIR
mdsrate_STRIPEPARAMS=${mdsrate_STRIPEPARAMS:-${fs_STRIPEPARAMS:-"-i 0 -c 1"}}
setstripe_getstripe $BASEDIR $mdsrate_STRIPEPARAMS
NUM_FILES=$IFree
fi
-generate_machine_file $NODES_TO_USE $MACHINEFILE || error "can not generate machinefile"
+generate_machine_file $NODES_TO_USE $MACHINEFILE ||
+ error "can not generate machinefile"
+
+p="$TMP/$TESTSUITE-$TESTNAME.parameters"
+save_lustre_params $(get_facets MDS) mdt.*.enable_remote_dir_gid > $p
+do_nodes $(comma_list $(mdts_nodes)) \
+ $LCTL set_param mdt.*.enable_remote_dir_gid=-1
if [ -n "$NOCREATE" ]; then
echo "NOCREATE=$NOCREATE => no file creation."
log "===== $0 Test preparation: creating ${NUM_FILES} files."
- COMMAND="${MDSRATE} ${MDSRATE_DEBUG} --mknod --dir ${TESTDIR}
- --nfiles ${NUM_FILES} --filefmt 'f%%d'"
- echo "+" ${COMMAND}
+ COMMAND="${MDSRATE} ${MDSRATE_DEBUG} --mknod --dir ${TESTDIR}
+ --nfiles ${NUM_FILES} --filefmt 'f%%d'
+ $mdtcount_opt $debug_opt"
+ echo "+" ${COMMAND}
NUM_CLIENTS=$(get_node_count ${NODES_TO_USE//,/ })
NUM_THREADS=$((NUM_CLIENTS * MDSCOUNT))
if [ ${PIPESTATUS[0]} != 0 ]; then
error_noexit "mdsrate file creation failed, aborting"
+ restore_lustre_params < $p
mdsrate_cleanup $NUM_THREADS $MACHINEFILE $NUM_FILES \
$TESTDIR 'f%%d' --ignore
exit 1
if [ ${PIPESTATUS[0]} != 0 ]; then
[ -f $LOG ] && sed -e "s/^/log: /" $LOG
error_noexit "mdsrate stat on single client failed, aborting"
+ restore_lustre_params < $p
mdsrate_cleanup $NUM_CLIENTS $MACHINEFILE $NUM_FILES \
$TESTDIR 'f%%d' --ignore
exit 1
if [ ${PIPESTATUS[0]} != 0 ]; then
[ -f $LOG ] && sed -e "s/^/log: /" $LOG
error_noexit "mdsrate stat on multiple nodes failed, aborting"
+ restore_lustre_params < $p
mdsrate_cleanup $NUM_CLIENTS $MACHINEFILE $NUM_FILES \
$TESTDIR 'f%%d' --ignore
exit 1
fi
complete $SECONDS
+restore_lustre_params < $p
mdsrate_cleanup $NUM_CLIENTS $MACHINEFILE $NUM_FILES $TESTDIR 'f%%d'
rmdir $BASEDIR || true
rm -f $MACHINEFILE
int ndirs = 1;
char *dirfmt;
char dir[PATH_MAX];
-char mkdir_cmd[PATH_MAX + 32];
+char mkdir_cmd[PATH_MAX + 48];
int dirthreads;
int dirnum;
DIR *directory;
if (!S_ISDIR(sb.st_mode))
fatal(myrank, "'%s' is not dir\n", dir);
} else if (errno == ENOENT) {
- sprintf(mkdir_cmd, "lfs mkdir -i %d %s",
- myrank % mdt_count, dir);
+ sprintf(mkdir_cmd, "lfs mkdir -i %d -c %d %s",
+ rand() % mdt_count,
+ rand() % mdt_count + 1, dir);
} else {
fatal(myrank, "'%s' stat failed\n", dir);
}
sprintf(mkdir_cmd, "mkdir -p %s", dir);
}
- dmesg("%d: %s\n", myrank, mkdir_cmd);
#ifdef _LIGHTWEIGHT_KERNEL
printf("NOTICE: not running system(%s)\n", mkdir_cmd);
#else
- rc = system(mkdir_cmd);
+ if (ndirs == 1) {
+ if (myrank == 0) {
+ dmesg("%d: %s\n", myrank, mkdir_cmd);
+ rc = system(mkdir_cmd);
+ } else {
+ rc = 0;
+ }
+ if (MPI_Barrier(MPI_COMM_WORLD) != MPI_SUCCESS)
+ fatal(myrank, "mkdir MPI_Barrier failed\n");
+ } else {
+ dmesg("%d: %s\n", myrank, mkdir_cmd);
+ rc = system(mkdir_cmd);
+ }
if (rc)
fatal(myrank, "'%s' failed.\n", mkdir_cmd);
#endif