Whamcloud - gitweb
LU-13941 osp: Silently lower requested create_count to maximum
[fs/lustre-release.git] / lustre / tests / functions.sh
index 8d010df..b016732 100644 (file)
@@ -126,35 +126,35 @@ $msg"
 #
 # In the second usage the new value is appended to the old.
 setmodopts() {
-        local _append=false
+       local _append=false
 
-        if [ "$1" = -a ]; then
-            _append=true
-            shift
-        fi
+       if [ "$1" = -a ]; then
+               _append=true
+               shift
+       fi
 
-        local _var=MODOPTS_$1
-        local _newvalue=$2
-        local _savevar=$3
-        local _oldvalue
+       local _var=MODOPTS_$1
+       local _newvalue=$2
+       local _savevar=$3
+       local _oldvalue
 
-        # Dynamic naming of variables is a pain in bash.  In ksh93 we could
-        # write "nameref opts_var=${modname}_MODOPTS" then assign directly
-        # to opts_var.  Associative arrays would also help, alternatively.
-        # Alas, we're stuck with eval until all distros move to a more recent
-        # version of bash.  Fortunately we don't need to eval unset and export.
+       # Dynamic naming of variables is a pain in bash.  In ksh93 we could
+       # write "nameref opts_var=${modname}_MODOPTS" then assign directly
+       # to opts_var.  Associative arrays would also help, alternatively.
+       # Alas, we're stuck with eval until all distros move to a more recent
+       # version of bash.  Fortunately we don't need to eval unset and export.
 
-        if [ -z "$_newvalue" ]; then
-            unset $_var
-            return 0
-        fi
+       if [ -z "$_newvalue" ]; then
+               unset $_var
+               return 0
+       fi
 
-        _oldvalue=${!var}
-        $_append && _newvalue="$_oldvalue $_newvalue"
-        export $_var="$_newvalue"
-        echo setmodopts: ${_var}=${_newvalue}
+       _oldvalue=${!_var}
+       $_append && _newvalue="$_oldvalue $_newvalue"
+       export $_var="$_newvalue"
+       echo setmodopts: ${_var}=${_newvalue}
 
-        [ -n "$_savevar" ] && eval $_savevar=\""$_oldvalue"\"
+       [ -n "$_savevar" ] && eval $_savevar=\""$_oldvalue"\"
 }
 
 echoerr () { echo "$@" 1>&2 ; }
@@ -169,7 +169,7 @@ signaled() {
 }
 
 mpi_run () {
-    local mpirun="$MPIRUN $MPIRUN_OPTIONS --oversubscribe"
+    local mpirun="$MPIRUN $MPIRUN_OPTIONS"
     local command="$mpirun $@"
     local mpilog=$TMP/mpi.log
     local rc
@@ -611,6 +611,7 @@ run_ior() {
        ior_xferSize=${ior_xferSize:-1M}
        ior_type=${ior_type:-POSIX}
        ior_DURATION=${ior_DURATION:-30}        # minutes
+       ior_CLEANUP=${ior_CLEANUP:-true}
        local multiplier=1
        case ${ior_blockUnit} in
                [G])
@@ -692,7 +693,7 @@ run_ior() {
     if [ $rc != 0 ] ; then
         error "ior failed! $rc"
     fi
-    rm -rf $testdir
+    $ior_CLEANUP && rm -rf $testdir || true
 }
 
 run_mib() {
@@ -1041,7 +1042,7 @@ run_rr_alloc() {
        # Save mdt values, set threshold to 100% i.e always Round Robin,
        # restore the saved values again after creating files...
        save_lustre_params mds1 \
-               "lov.$FSNAME-MDT0000*.qos_threshold_rr" > $qos_prec_objs
+               "lod.$FSNAME-MDT0000*.qos_threshold_rr" > $qos_prec_objs
        save_lustre_params mds1 \
                "osp.$FSNAME-OST*-osc-MDT0000.create_count" >> $qos_prec_objs
 
@@ -1057,10 +1058,17 @@ run_rr_alloc() {
 
        foeo_calc=$((rr_alloc_NFILES * total_MNTPTS / OSTCOUNT))
        local create_count=$((2 * foeo_calc))
-       do_facet mds1 "$LCTL set_param -n \
-               lov.$FSNAME-MDT0000*.qos_threshold_rr 100 \
-               osp.$FSNAME-OST*-osc-MDT0000.create_count $create_count" ||
-               error "failed while setting qos_threshold_rr & creat_count"
+
+       # create_count accepted values:
+       #   [OST_MIN_PRECREATE=32, OST_MAX_PRECREATE=20000]
+       # values exceeding OST_MAX_PRECREATE are lowered to the maximum.
+       [[ $create_count -lt 32 ]] && create_count=32
+       local i
+       for i in $(seq $MDSCOUNT); do
+               do_facet mds$i "$LCTL set_param -n \
+                       lod.$FSNAME-MDT*.qos_threshold_rr=100 \
+                       osp.$FSNAME-OST*-osc-MDT*.create_count=$create_count"
+       done
 
        # Create few temporary files in order to increase the precreated objects
        # to a desired value, before starting 'rr_alloc' app. Due to default