Whamcloud - gitweb
b=11171
authorbrian <brian>
Thu, 2 Aug 2007 17:19:33 +0000 (17:19 +0000)
committerbrian <brian>
Thu, 2 Aug 2007 17:19:33 +0000 (17:19 +0000)
r=jitendra,cliffw

Some documentation (s/.pl//g) fixes.
Add a $rslt_loc variable to set the location of the $rslt file.  Defaults
to /tmp for backward compatibility.
Cleanup some syntax/style:
- put $ next to variable names in awk scriptlets
- one space on either side of |
Make sure the amount of data the sgp_dd is going to write actually fits in
the device and suggest reducing $size and exiting with an error if it does
not.

lustre-iokit/sgpdd-survey/README.sgpdd-survey
lustre-iokit/sgpdd-survey/plot-sgpdd
lustre-iokit/sgpdd-survey/sgpdd-survey

index 4b95eda..d9cba1f 100644 (file)
@@ -87,5 +87,5 @@ phased by seeks at the given record size.
 The included script "parse.pl" will process output files and create
 .csv files for spreadsheet import
 
 The included script "parse.pl" will process output files and create
 .csv files for spreadsheet import
 
-The "plot-sgpdd.pl" script plots the results directly using gnuplot.
+The "plot-sgpdd" script plots the results directly using gnuplot.
 
 
index 85aa388..8b5d8b8 100755 (executable)
@@ -2,7 +2,7 @@
 # Report generation for plot-sgpdd
 # ================================
 #        The plot-sgpdd script is used to generate csv file and
 # Report generation for plot-sgpdd
 # ================================
 #        The plot-sgpdd script is used to generate csv file and
-# instructions files for gnuplot from the output of sgpdd-survey.pl script.
+# instructions files for gnuplot from the output of sgpdd-survey script.
 #
 #        The plot-sgpdd also creates .scr file that contains instructions
 # for gnuplot to plot the graph. After generating .dat and .scr files this
 #
 #        The plot-sgpdd also creates .scr file that contains instructions
 # for gnuplot to plot the graph. After generating .dat and .scr files this
 # $ sgpdd-survey > log_filename
 # $ plot-sgpdd <log_filename>
 # [Note: 1. This script may need modifications whenever there will be
 # $ sgpdd-survey > log_filename
 # $ plot-sgpdd <log_filename>
 # [Note: 1. This script may need modifications whenever there will be
-#           modifications in output format of sgpdd-survey.pl script.
+#           modifications in output format of sgpdd-survey script.
 #        2. Gnuplot version 4.0 or above is required.]
 
 sub usage() 
 {
        print STDERR "Usage: $0 [options] <log_filename>\n";
 #        2. Gnuplot version 4.0 or above is required.]
 
 sub usage() 
 {
        print STDERR "Usage: $0 [options] <log_filename>\n";
-       print STDERR "  $0 parses and plots graphs from the output of sgpdd-survey.pl\n";
+       print STDERR "  $0 parses and plots graphs from the output of sgpdd-survey\n";
        print STDERR "  It generates text data files (.dat) and graphs (.png) using gnuplot.\n";
        print STDERR "options:\n";
        print STDERR "  --rt: Subtitle for read graphs\n";
        print STDERR "  It generates text data files (.dat) and graphs (.png) using gnuplot.\n";
        print STDERR "options:\n";
        print STDERR "  --rt: Subtitle for read graphs\n";
index cabfb79..94946c0 100755 (executable)
@@ -11,7 +11,8 @@
 
 # result file prefix.  date/time+hostname makes unique
 # NB ensure the path exists if it includes subdirs
 
 # result file prefix.  date/time+hostname makes unique
 # NB ensure the path exists if it includes subdirs
-rslt=${rslt:-"/tmp/sgpdd_survey_`date +%F@%R`_`uname -n`"}
+rslt_loc=${rslt_loc:-"/tmp"}
+rslt=${rslt:-"$rslt_loc/sgpdd_survey_`date +%F@%R`_`uname -n`"}
 
 # what to do (read or write)
 actions=${actions:-"write read"}
 
 # what to do (read or write)
 actions=${actions:-"write read"}
@@ -47,12 +48,12 @@ if [ "$scsidevs" ]; then
         # we will test for a LUN, the test for a partition
         # if the partition number is > 9 this will fail
     for d in $scsidevs; do
         # we will test for a LUN, the test for a partition
         # if the partition number is > 9 this will fail
     for d in $scsidevs; do
-       devs[$i]=`sg_map | awk "{if ($ 2 == \"$d\") print $ 1}"`
+       devs[$i]=`sg_map | awk "{if (\\\$2 == \"$d\") print \\\$1}"`
         if [ -z "${devs[i]}" ]; then
             echo "Can't find SG device for $d, testing for partition"
             pt=`echo $d | sed 's/[0-9]$//'`
             # Try again
         if [ -z "${devs[i]}" ]; then
             echo "Can't find SG device for $d, testing for partition"
             pt=`echo $d | sed 's/[0-9]$//'`
             # Try again
-            devs[$i]=`sg_map | awk "{if ($ 2 == \"$pt\") print $ 1}"`
+            devs[$i]=`sg_map | awk "{if (\\\$2 == \"$pt\") print \\\$1}"`
             if [ -z "${devs[i]}" ]; then
                 echo "Can't find SG device $pt"
                 exit 1
             if [ -z "${devs[i]}" ]; then
                 echo "Can't find SG device $pt"
                 exit 1
@@ -80,7 +81,7 @@ ndevs=${#devs[@]}
 
 # determine block size. This should also work for raw devices
 # If it fails, set to 512
 
 # determine block size. This should also work for raw devices
 # If it fails, set to 512
-bs=$((`sg_readcap -b ${devs[0]}  |awk '{print $2}'`))
+bs=$((`sg_readcap -b ${devs[0]} awk '{print $2}'`))
 if [ $bs == 0  ];then
        echo "sg_readcap failed, setting block size to 512"
        bs=512
 if [ $bs == 0  ];then
        echo "sg_readcap failed, setting block size to 512"
        bs=512
@@ -133,6 +134,11 @@ for ((rsz=$rszlo;rsz<=$rszhi;rsz*=2)); do
                t0=`date +%s.%N`
                for ((i=0;i<ndevs;i++)); do
                    dev=${devs[i]}
                t0=`date +%s.%N`
                for ((i=0;i<ndevs;i++)); do
                    dev=${devs[i]}
+                   devsize=$((bs*`sg_readcap -b ${dev} | awk '{print $1}'`/1024))
+                   if [ $devsize -lt $actual_size ]; then
+                       echo -e "device $(sg_map | grep $dev | awk '{ print $2; }') not big enough: $devsize < $actual_size.\nConsider reducing \$size"
+                       exit 1
+                   fi
                    if [ $action = read ]; then
                        inf="if=$dev"
                        outf="of=/dev/null"
                    if [ $action = read ]; then
                        inf="if=$dev"
                        outf="of=/dev/null"