X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=lustre%2Ftests%2Ffunctions.sh;h=0bc4fa0e279482a5e86176c2830dfbe2c40a2a1d;hp=9e6976d26807b13d5c73cc83d0efc958ea3ba0aa;hb=c394068ee148595711c661651368b91373bcc78a;hpb=4ac9f1ad9ca68de0df7ce0d6451c29a5ff3be1b9 diff --git a/lustre/tests/functions.sh b/lustre/tests/functions.sh index 9e6976d..0bc4fa0 100644 --- a/lustre/tests/functions.sh +++ b/lustre/tests/functions.sh @@ -1,4 +1,6 @@ #!/bin/bash +# -*- mode: Bash; tab-width: 4; indent-tabs-mode: t; -*- +# vim:shiftwidth=4:softtabstop=4:tabstop=4: # Simple function used by run_*.sh scripts @@ -252,6 +254,19 @@ short_hostname() { echo $(sed 's/\..*//' <<< $1) } +### +# short_nodename +# +# Find remote nodename, stripped of any domain, etc. +# 'hostname -s' is easy, but not implemented on all systems +short_nodename() { + local rname=$(do_node $1 "uname -n" || echo -1) + if [[ "$rname" = "-1" ]]; then + rname=$1 + fi + echo $(short_hostname $rname) +} + print_opts () { local var @@ -265,18 +280,13 @@ print_opts () { } run_compilebench() { - -# Takes: -# 5 min * cbench_RUNS -# SLOW=no 10 mins -# SLOW=yes 50 mins -# Space estimation: -# compile dir kernel-1 680MB -# required space 680MB * cbench_IDIRS = ~7 Gb + # Space estimation: + # compile dir kernel-0 ~1GB + # required space ~1GB * cbench_IDIRS cbench_DIR=${cbench_DIR:-""} - cbench_IDIRS=${cbench_IDIRS:-4} - cbench_RUNS=${cbench_RUNS:-4} + cbench_IDIRS=${cbench_IDIRS:-2} + cbench_RUNS=${cbench_RUNS:-2} print_opts cbench_DIR cbench_IDIRS cbench_RUNS @@ -286,14 +296,16 @@ run_compilebench() { [ -e $cbench_DIR/compilebench ] || \ { skip_env "No compilebench build" && return; } - local space=$(df -P $DIR | tail -n 1 | awk '{ print $4 }') - if [ $space -le $((680 * 1024 * cbench_IDIRS)) ]; then - cbench_IDIRS=$(( space / 680 / 1024)) - [ $cbench_IDIRS = 0 ] && \ - skip_env "Need free space atleast 680 Mb, have $space" && return + local space=$(df -P $DIR | tail -n 1 | awk '{ print $4 }') + if [[ $space -le $((1024 * 1024 * cbench_IDIRS)) ]]; then + cbench_IDIRS=$((space / 1024 / 1024)) + [[ $cbench_IDIRS -eq 0 ]] && + skip_env "Need free space at least 1GB, have $space" && + return + + echo "free space=$space, reducing initial dirs to $cbench_IDIRS" + fi - log free space=$space, reducing initial dirs to $cbench_IDIRS - fi # FIXME: # t-f _base needs to be modifyed to set properly tdir # for new "test_foo" functions names @@ -344,14 +356,15 @@ run_metabench() { local cmd="$METABENCH -w $testdir -c $mbench_NFILES -C -S -k" echo "+ $cmd" - # find out if we need to use srun by checking $SRUN_PARTITION - if [ "$SRUN_PARTITION" ]; then - $SRUN $SRUN_OPTIONS -D $testdir -w $clients -N $num_clients \ - -n $((num_clients * mbench_THREADS)) -p $SRUN_PARTITION -- $cmd - else - mpi_run -np $((num_clients * $mbench_THREADS)) \ - -machinefile ${MACHINEFILE} $cmd - fi + # find out if we need to use srun by checking $SRUN_PARTITION + if [ "$SRUN_PARTITION" ]; then + $SRUN $SRUN_OPTIONS -D $testdir -w $clients -N $num_clients \ + -n $((num_clients * mbench_THREADS)) \ + -p $SRUN_PARTITION -- $cmd + else + mpi_run ${MACHINEFILE_OPTION} ${MACHINEFILE} \ + -np $((num_clients * $mbench_THREADS)) $cmd + fi local rc=$? if [ $rc != 0 ] ; then @@ -390,15 +403,16 @@ run_simul() { local cmd="$SIMUL -d $testdir -n $simul_REP -N $simul_REP" - echo "+ $cmd" - # find out if we need to use srun by checking $SRUN_PARTITION - if [ "$SRUN_PARTITION" ]; then - $SRUN $SRUN_OPTIONS -D $testdir -w $clients -N $num_clients \ - -n $((num_clients * simul_THREADS)) -p $SRUN_PARTITION -- $cmd - else - mpi_run -np $((num_clients * simul_THREADS)) \ - -machinefile ${MACHINEFILE} $cmd - fi + echo "+ $cmd" + # find out if we need to use srun by checking $SRUN_PARTITION + if [ "$SRUN_PARTITION" ]; then + $SRUN $SRUN_OPTIONS -D $testdir -w $clients -N $num_clients \ + -n $((num_clients * simul_THREADS)) -p $SRUN_PARTITION \ + -- $cmd + else + mpi_run ${MACHINEFILE_OPTION} ${MACHINEFILE} \ + -np $((num_clients * simul_THREADS)) $cmd + fi local rc=$? if [ $rc != 0 ] ; then @@ -445,15 +459,16 @@ run_mdtest() { local cmd="$MDTEST -d $testdir -i $mdtest_iteration -n $mdtest_nFiles" [ $type = "fpp" ] && cmd="$cmd -u" - echo "+ $cmd" - # find out if we need to use srun by checking $SRUN_PARTITION - if [ "$SRUN_PARTITION" ]; then - $SRUN $SRUN_OPTIONS -D $testdir -w $clients -N $num_clients \ - -n $((num_clients * mdtest_THREADS)) -p $SRUN_PARTITION -- $cmd - else - mpi_run -np $((num_clients * mdtest_THREADS)) \ - -machinefile ${MACHINEFILE} $cmd - fi + echo "+ $cmd" + # find out if we need to use srun by checking $SRUN_PARTITION + if [ "$SRUN_PARTITION" ]; then + $SRUN $SRUN_OPTIONS -D $testdir -w $clients -N $num_clients \ + -n $((num_clients * mdtest_THREADS)) \ + -p $SRUN_PARTITION -- $cmd + else + mpi_run ${MACHINEFILE_OPTION} ${MACHINEFILE} \ + -np $((num_clients * mdtest_THREADS)) $cmd + fi local rc=$? if [ $rc != 0 ] ; then @@ -578,15 +593,16 @@ run_ior() { -t $ior_xferSize -v -w -r -i $ior_iteration -T $ior_DURATION -k" [ $type = "fpp" ] && cmd="$cmd -F" - echo "+ $cmd" - # find out if we need to use srun by checking $SRUN_PARTITION - if [ "$SRUN_PARTITION" ]; then - $SRUN $SRUN_OPTIONS -D $testdir -w $clients -N $num_clients \ - -n $((num_clients * ior_THREADS)) -p $SRUN_PARTITION -- $cmd - else - mpi_run -np $((num_clients * $ior_THREADS)) \ - -machinefile ${MACHINEFILE} $cmd - fi + echo "+ $cmd" + # find out if we need to use srun by checking $SRUN_PARTITION + if [ "$SRUN_PARTITION" ]; then + $SRUN $SRUN_OPTIONS -D $testdir -w $clients -N $num_clients \ + -n $((num_clients * ior_THREADS)) -p $SRUN_PARTITION \ + -- $cmd + else + mpi_run ${MACHINEFILE_OPTION} ${MACHINEFILE} \ + -np $((num_clients * $ior_THREADS)) $cmd + fi local rc=$? if [ $rc != 0 ] ; then @@ -631,15 +647,16 @@ run_mib() { local cmd="$MIB -t $testdir -s $mib_xferSize -l $mib_xferLimit \ -L $mib_timeLimit -HI -p mib.$(date +%Y%m%d%H%M%S)" - echo "+ $cmd" - # find out if we need to use srun by checking $SRUN_PARTITION - if [ "$SRUN_PARTITION" ]; then - $SRUN $SRUN_OPTIONS -D $testdir -w $clients -N $num_clients \ - -n $((num_clients * mib_THREADS)) -p $SRUN_PARTITION -- $cmd - else - mpi_run -np $((num_clients * mib_THREADS)) \ - -machinefile ${MACHINEFILE} $cmd - fi + echo "+ $cmd" + # find out if we need to use srun by checking $SRUN_PARTITION + if [ "$SRUN_PARTITION" ]; then + $SRUN $SRUN_OPTIONS -D $testdir -w $clients -N $num_clients \ + -n $((num_clients * mib_THREADS)) -p $SRUN_PARTITION \ + -- $cmd + else + mpi_run ${MACHINEFILE_OPTION} ${MACHINEFILE} \ + -np $((num_clients * mib_THREADS)) $cmd + fi local rc=$? if [ $rc != 0 ] ; then @@ -678,9 +695,9 @@ run_cascading_rw() { local cmd="$CASC_RW -g -d $testdir -n $casc_REP" - echo "+ $cmd" - mpi_run -np $((num_clients * $casc_THREADS)) \ - -machinefile ${MACHINEFILE} $cmd + echo "+ $cmd" + mpi_run ${MACHINEFILE_OPTION} ${MACHINEFILE} \ + -np $((num_clients * $casc_THREADS)) $cmd local rc=$? if [ $rc != 0 ] ; then @@ -720,9 +737,9 @@ run_write_append_truncate() { local cmd="write_append_truncate -n $write_REP $file" - echo "+ $cmd" - mpi_run -np $((num_clients * $write_THREADS)) \ - -machinefile ${MACHINEFILE} $cmd + echo "+ $cmd" + mpi_run ${MACHINEFILE_OPTION} ${MACHINEFILE} \ + -np $((num_clients * $write_THREADS)) $cmd local rc=$? if [ $rc != 0 ] ; then @@ -734,8 +751,8 @@ run_write_append_truncate() { run_write_disjoint() { - WRITE_DISJOINT=${WRITE_DISJOINT:-\ - $(which write_disjoint 2> /dev/null || true)} + WRITE_DISJOINT=${WRITE_DISJOINT:-$(which write_disjoint \ + 2> /dev/null || true)} # threads per client wdisjoint_THREADS=${wdisjoint_THREADS:-4} wdisjoint_REP=${wdisjoint_REP:-10000} @@ -760,9 +777,9 @@ run_write_disjoint() { local cmd="$WRITE_DISJOINT -f $testdir/file -n $wdisjoint_REP" - echo "+ $cmd" - mpi_run -np $((num_clients * $wdisjoint_THREADS)) \ - -machinefile ${MACHINEFILE} $cmd + echo "+ $cmd" + mpi_run ${MACHINEFILE_OPTION} ${MACHINEFILE} \ + -np $((num_clients * $wdisjoint_THREADS)) $cmd local rc=$? if [ $rc != 0 ] ; then @@ -773,8 +790,8 @@ run_write_disjoint() { run_parallel_grouplock() { - PARALLEL_GROUPLOCK=${PARALLEL_GROUPLOCK:-\ - $(which parallel_grouplock 2> /dev/null || true)} + PARALLEL_GROUPLOCK=${PARALLEL_GROUPLOCK:-$(which parallel_grouplock \ + 2> /dev/null || true)} parallel_grouplock_MINTASKS=${parallel_grouplock_MINTASKS:-5} if [ "$NFSCLIENT" ]; then @@ -798,25 +815,26 @@ run_parallel_grouplock() { local cmd local status=0 local subtest - for i in $(seq 12); do - subtest="-t $i" - local cmd="$PARALLEL_GROUPLOCK -g -v -d $testdir $subtest" - echo "+ $cmd" - - mpi_run -np $parallel_grouplock_MINTASKS \ - -machinefile ${MACHINEFILE} $cmd - local rc=$? - if [ $rc != 0 ] ; then - error_noexit "parallel_grouplock subtests $subtest failed! $rc" - else - echo "parallel_grouplock subtests $subtest PASS" - fi - let status=$((status + rc)) - # clear debug to collect one log per one test - do_nodes $(comma_list $(nodes_list)) lctl clear - done - [ $status -eq 0 ] || error "parallel_grouplock status: $status" - rm -rf $testdir + for i in $(seq 12); do + subtest="-t $i" + local cmd="$PARALLEL_GROUPLOCK -g -v -d $testdir $subtest" + echo "+ $cmd" + + mpi_run ${MACHINEFILE_OPTION} ${MACHINEFILE} \ + -np $parallel_grouplock_MINTASKS $cmd + local rc=$? + if [ $rc != 0 ] ; then + error_noexit "parallel_grouplock subtests $subtest " \ + "failed! $rc" + else + echo "parallel_grouplock subtests $subtest PASS" + fi + let status=$((status + rc)) + # clear debug to collect one log per one test + do_nodes $(comma_list $(nodes_list)) lctl clear + done + [ $status -eq 0 ] || error "parallel_grouplock status: $status" + rm -rf $testdir } cleanup_statahead () { @@ -879,7 +897,8 @@ run_statahead () { local cmd="$cmd1 $cmd2" echo "+ $cmd" - mpi_run -np $((num_clients * 32)) -machinefile ${MACHINEFILE} $cmd + mpi_run ${MACHINEFILE_OPTION} ${MACHINEFILE} \ + -np $((num_clients * 32)) $cmd local rc=$? if [ $rc != 0 ] ; then