Home | History | Annotate | Download | only in disktest
      1 Disktest Version v1.4.x CHANGELOG
      2 
      3 CHANGES SINCE v1.3.x
      4 
      5   Major Changes:
      6 
      7     Added an option to specify the amount of time that IO can be stalled,
      8     before it is considered an error.  The default is 120 sec and can be
      9     changed using the -t.  An IO timeout is a warning message, unless -At is
     10     specified.
     11 
     12     Added additional option to -t to support random IO delays per thread. This
     13     function use to only support static delays.  Review the -t option in the
     14     man page to understand the new operation.
     15 
     16     Added signal handling.  So that SIGINT, SIGKILL, SIGHUP, SIGTERM, and
     17     SIGUSR1 are now handled.  Sending SIGUSR1, will display heartbeat
     18     statistics since the last time SIGUSR1 was issued or the last heartbeat
     19     interval if -h is specified.  Sending SIGUSR1, reset heartbeat counter
     20     statistics.
     21 
     22     More changes to the -m option.  With the release of the last level of
     23     disktest, it was found the the extra mark options which were add, caused
     24     some undesired results, as in not being able to read back from a different
     25     host, due to the host name being automatically set.  The -m option is now
     26     been cahnged to work just like the -P option.  So that all mark options
     27     can be included, or only the desired subset.
     28 
     29     Added sync interval to -Is.  The number of IOs can now be specified,
     30     before a sync is sent.  If -Is is specified, then sync will occur on every
     31     write IO.  If -Is100, then every 100th write IO, and sync will occur.
     32 
     33     Added -R option, which specifies a number of retries that should occur
     34     after a seek, or read/write failure.  Also specifies how much delay should
     35     be added before a retry occurs. sync and data miscompares errors are not
     36     retrable.
     37 
     38     Added option to -A, -At, this will cause an IO timeout, specified by -t, to
     39     be an error and fail and IO test.  By default, IO timeouts are warnings.
     40 
     41   Minor Changes:
     42 
     43     Fixed that use of -s or -S, where the LBA/Block specified is greater then
     44     the calculated volume size.  This was an issue when initializing sparse
     45     file targets where a single write was issued at the end of the file.
     46 
     47     Fixed a bug for Windows were the volume size was returned in bytes when it
     48     should have been returned in blocks.
     49 
     50     Fixed a bug where during linear testing using cycles, the read time for the
     51     cycle duration was always being printed as one second.
     52 
     53     Disktest now uses stat(2) to check the filespec type, removed depricated
     54     way of checking file type, which did not always work as expected.
     55 
     56     Updated the sync on test end, to always sync when open for write. This is
     57     to make sure that even on block devices, that the kernel cache is sync'd to
     58     disk before moving to the next test.  Previously this was only done when
     59     the filespec was a filesystem file only.
     60 
     61     Added patch from Mike Anderson for checking status on sync/close.
     62 
     63     Fixed cycle performance stat printing. Cycle performance was printing at
     64     the end if each cycle, even if -PC was not specified.
     65 
     66     Updated docs, to document the -PC option.
     67 
     68     Added check for early exit in IO threads when global run flag cleared.
     69 
     70     When the -Ac flag is specified, error messages, that would normally fail
     71     the test will be printed as warning messages, and the test will continue.
     72     At the end of the test, if it was able to complete, the test will be
     73     described as passed with warning.  if the -Ac is not used, the the same
     74     test will be failed with errors.
     75 
     76     Fixed up some issues with the timer code, specifically so that timed runs
     77     are based on the number of seconds elapsed, not actual time, this was an
     78     issue during timed runs, and the system time was changed.
     79 
     80     Fixed an issue with the block range calcualation, when specified with the
     81     -S option. The last LBA calculation was wrong, of by transfer size - 1.
     82 
     83     Fixed an issue that was intruduced in 1.3, where percentage read/write
     84     always assumed error checking enabled.
     85 
     86     Fixed the -s and -S options so that they now allow for hex and oct input
     87     from the command line.
     88 
     89     Modified the fsync to not be called on character raw devices, this was
     90     causing a false failure on IO thread exit.
     91 
     92     Ross S. W. Walker found a significant performance drop in IO throughput.
     93     This was caused by calling sleep(0) by default on every IO.  Modified
     94     the code so that if delay is zero, the sleep is not called.
     95 
     96 CHANGES SINCE v1.2.x
     97 
     98   Major Changes:
     99 
    100     Added synchronization at the block level between threads as the default.
    101     Also added an option to serialize IO and the IO operation level but it is
    102     not the default.  Added to new options to -A, s and S, to manipulate these
    103     new synchronization and serialization features.
    104 
    105     Added the target, cycle start time, seed, and hostname info to the mark
    106     option. When the mark option is specified, the LBA number, the pass
    107     count, the start time in UTC, the seed value, the hostname, and the
    108     target is added to the front of each LBA data set, the remainder of the
    109     data set is then filed with the requested data pattern.
    110 
    111     On a data miscompare, disktest will now reread the lba that caused the data
    112     miscompare and present that data in the dump file and stdout.
    113 
    114     Add options to -A.  If -Ag is specified, all threads to all tagets are
    115     killed, vs. threads to only the target that had the error.  -Am, will write
    116     a marker, DISKTEST ERROR OCCURRED, to LBA 0 of the failing target device.
    117     To turn off the reread on data miscompare us the option -Ar. The orginal
    118     use of -A, continue on error, is now the option -Ac. -Aw will allow for
    119     WORM tesign when using -pR.  -As and -AS are new IO sycronization options.
    120 
    121     A new option -M has been added.  This will override the use of the cycle
    122     start time on the mark data and set it to the specified value up to 8 bytes.
    123 
    124     Added new seek pattern, -pr, random interleaved.  The way this seek pattern
    125     functions is that a random LBA is selected, and then it is written to, if
    126     write is specified, then read from, if read is specified, before selecting
    127     a new random LBA.  To get the original random, which supports the Duty
    128     cycle function and writes and read to random LBAs for each seek, use -pR.
    129 
    130     Added a delay time option, -t <delay>.  This will allow a user to specify,
    131     in miliseconds, the amount of time for each thread to delay before
    132     performing each IO operation.  The default is to not delay.
    133 
    134     Added a LBA alignement offset option, -o <offset>.  This option allows a
    135     user to specify the LBA which IO will start from and be aligned to.  For
    136     example if -o3 is specified for 1024 byte IOs, then the LBA alignment for
    137     IO will start at LBA 3 and be aligned at LBA 5, 7, 9, etc.  Instend of
    138     aligned at LBA 0, 2, 4, 6, 8 etc.  This is used to match the IO alignment
    139     to the storage device striping, or volume managment alignement in an OS.
    140 
    141   Minor Changes:
    142 
    143     The -d option use to reset the count at every 512 interval regardless of the
    144     requested dump size.  This made it difficult to dump current data content
    145     from the filespec and compare it with misscompare data.  The count is now
    146     consistent with the requested dump size.
    147 
    148     Modified the dump file to include the start arguments and the target.
    149 
    150     The timed test, -T, now works correctly with specifing cycles, -C.
    151 
    152     During cycle testing, the random data, -z,  is now different for each cycle.
    153 
    154     Added the -F option to the -? usage.
    155 
    156     When a data miscompare occures, the data printed to stdout now shows the
    157     byte offset of the first byte that caused the miscompare, and 16 bytes of
    158     data at that offset.
    159 
    160     Added a compile directive for debug information, so that debug type code is
    161     now #ifdef'd.  To us the -V option, the debug directive _DEBUG must be
    162     speicifed at compile time.
    163 
    164     Added the usecs an IO takes to complete in the debug information when using
    165     verbose level 5.
    166 
    167     The option -ma has been change to only having to specify -m
    168 
    169     When using the -F option to specify more then one target, there was a bug
    170     were the mutex was held for all targets during data compares, this has now
    171     been fixed so that each target holds its own set of mutexes.
    172 
    173     Changed stdout to not buffer its output.
    174 
    175     Modified the volume sizing function for aix, so that it could use the
    176     extended functions for getting the volumes size when DF_LGDSK is set
    177     as a flag in the devinfo struct.
    178 
    179     Modified the Makefile.aix to support compiling of a 64bit binary by
    180     default.
    181 
    182     Added additional checking when attempting to generate a random LBA target
    183     to lower the need to regenerate an LBA after alignment and transfer size
    184     are taken into account.
    185 
    186     The heartbeat option now shows statistics for the hearbeat interval, and
    187     not the aggregate of the cycle.  Also added more discription to the
    188     statistical output to discribe the heartbeat, cycle, and total stats.
    189 
    190     Modified the block alignment macro so that non power of 2 transfer sizers
    191     will align correctly.  Previously, when transfering non 2^n trnasfer sizes
    192     the nearest 2^n would be used.
    193 
    194     Add a patch to the code, provided to me by Oliver Paukstadt, were on s390,
    195     need to specify that length of the value used for "longest time" in the
    196     timer code.
    197 
    198     When an error occurs in io, the errno has been added to the output line.
    199 
    200 CHANGES SINCE v1.1.x
    201 
    202   Major Changes:
    203 
    204     A new option -F has been added.  This allows the use of a file to discribe
    205     the targets that disktest will run against.  This should work as if an
    206     individual command line was started for each of the targets specified in the
    207     file.
    208 
    209     Add an option, C, to the performance option -P.  This allows the user to
    210     specify at the end of each cycle or test, to display the performance
    211     information for the cycle.  In the case were there is only one cycle, then
    212     the total and cycle performance data will be identical.
    213 
    214   Minor Changes:
    215 
    216     Added day calculation to runtime statistics.
    217 
    218     When setting a finite pass count, the passes would continue one more cycle
    219     then specified.
    220 
    221     Added fsync on close for unix systems when doing file IO.  The fsync will
    222     occur in between cycles and at the conclusion of a test.  Also added a
    223     modification to -If, -Ifs, this will force an fsync on every write.  The
    224     default is to only fsync at the end of a cycle or test.
    225 
    226     When using the the mark option, -m, disktest would some times report a
    227     false data miss compare.  Also the only -m available now is -ma.  There
    228     are cases that could cause false miss-compares when using variable block
    229     transfer size and the -mf or -ml options.  For now these modifiers have
    230     been disabled.
    231 
    232     Disktest now detects the size of a file when doing filesystem IO tests. It
    233     previously defaulted to the internal default of 2000 LBAs.
    234 
    235     Updated the man page and usage text to describe option -z and option -Q.
    236     They have always been there, but never in the documentation.
    237 
    238     I had made use of lots of globals to share data between threads. Most of
    239     these have now been cleaned up.
    240 
    241     when using the -PPA option, the values were being rounded and not showing
    242     the calculated tenths.
    243 
    244     When running -C0, dsktest was showing 'Starting pass x of 0', removed the
    245     'of 0' part.
    246 
    247     Statistics are never being shown when using -C0 option.  Now, stats will
    248     be shown for each cycle and the total for all cycles.
    249 
    250     The process ID that is shown as part of the running test is unique to the
    251     test running, not to each thread.  This change was made to make it easier
    252     to track a single test out of a log file by searching for the id.  It is
    253     also that same id used for the random seed and the dump file identifier.
    254 
    255     The -f option did not take into consideration the endian-ness of the arch.
    256     this would cause issues in the line value of the data pattern when using
    257     the option.  This has been fixed.
    258 
    259     Added IFDEF for Power when using ioctl BLKGETSIZE where the size must be a
    260     unsigned long for the value to return correctly
    261 
    262 CHANGES SINCE v1.0.x
    263 
    264   Major Changes:
    265 
    266     Updated performance output based on command line.  Gave one decimal in
    267     MB/s output.
    268 
    269     Rewrote -pL IO routine to show correct stats.  Now shows pass count when
    270     using -C.
    271 
    272     Added dump function from command line.  Created formatted dump output for
    273     Data miscomare and command line.
    274 
    275     Modified performance statistic printing to be more accurate with respect
    276     to throughput and IO/s.  Added one decimal place of precision in MB/s
    277     calculation.
    278 
    279   Minor Changes:
    280 
    281     Code cleanup to remove the plethora if #ifdef for windows/unix functional
    282     differences.
    283 
    284     Updates to parsing routines for user input.  Added multipliers for -S and
    285     -s command line arguments. Forced default seeks to default if performing
    286     a diskcache test.
    287 
    288     Can now leave off filespec the full path header as it will be added based
    289     on -I.
    290