290 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			290 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| Disktest Version v1.4.x CHANGELOG
 | |
| 
 | |
| CHANGES SINCE v1.3.x
 | |
| 
 | |
|   Major Changes:
 | |
| 
 | |
|     Added an option to specify the amount of time that IO can be stalled,
 | |
|     before it is considered an error.  The default is 120 sec and can be
 | |
|     changed using the -t.  An IO timeout is a warning message, unless -At is
 | |
|     specified.
 | |
| 
 | |
|     Added additional option to -t to support random IO delays per thread. This
 | |
|     function use to only support static delays.  Review the -t option in the
 | |
|     man page to understand the new operation.
 | |
| 
 | |
|     Added signal handling.  So that SIGINT, SIGKILL, SIGHUP, SIGTERM, and
 | |
|     SIGUSR1 are now handled.  Sending SIGUSR1, will display heartbeat
 | |
|     statistics since the last time SIGUSR1 was issued or the last heartbeat
 | |
|     interval if -h is specified.  Sending SIGUSR1, reset heartbeat counter
 | |
|     statistics.
 | |
| 
 | |
|     More changes to the -m option.  With the release of the last level of
 | |
|     disktest, it was found the the extra mark options which were add, caused
 | |
|     some undesired results, as in not being able to read back from a different
 | |
|     host, due to the host name being automatically set.  The -m option is now
 | |
|     been cahnged to work just like the -P option.  So that all mark options
 | |
|     can be included, or only the desired subset.
 | |
| 
 | |
|     Added sync interval to -Is.  The number of IOs can now be specified,
 | |
|     before a sync is sent.  If -Is is specified, then sync will occur on every
 | |
|     write IO.  If -Is100, then every 100th write IO, and sync will occur.
 | |
| 
 | |
|     Added -R option, which specifies a number of retries that should occur
 | |
|     after a seek, or read/write failure.  Also specifies how much delay should
 | |
|     be added before a retry occurs. sync and data miscompares errors are not
 | |
|     retrable.
 | |
| 
 | |
|     Added option to -A, -At, this will cause an IO timeout, specified by -t, to
 | |
|     be an error and fail and IO test.  By default, IO timeouts are warnings.
 | |
| 
 | |
|   Minor Changes:
 | |
| 
 | |
|     Fixed that use of -s or -S, where the LBA/Block specified is greater then
 | |
|     the calculated volume size.  This was an issue when initializing sparse
 | |
|     file targets where a single write was issued at the end of the file.
 | |
| 
 | |
|     Fixed a bug for Windows were the volume size was returned in bytes when it
 | |
|     should have been returned in blocks.
 | |
| 
 | |
|     Fixed a bug where during linear testing using cycles, the read time for the
 | |
|     cycle duration was always being printed as one second.
 | |
| 
 | |
|     Disktest now uses stat(2) to check the filespec type, removed depricated
 | |
|     way of checking file type, which did not always work as expected.
 | |
| 
 | |
|     Updated the sync on test end, to always sync when open for write. This is
 | |
|     to make sure that even on block devices, that the kernel cache is sync'd to
 | |
|     disk before moving to the next test.  Previously this was only done when
 | |
|     the filespec was a filesystem file only.
 | |
| 
 | |
|     Added patch from Mike Anderson for checking status on sync/close.
 | |
| 
 | |
|     Fixed cycle performance stat printing. Cycle performance was printing at
 | |
|     the end if each cycle, even if -PC was not specified.
 | |
| 
 | |
|     Updated docs, to document the -PC option.
 | |
| 
 | |
|     Added check for early exit in IO threads when global run flag cleared.
 | |
| 
 | |
|     When the -Ac flag is specified, error messages, that would normally fail
 | |
|     the test will be printed as warning messages, and the test will continue.
 | |
|     At the end of the test, if it was able to complete, the test will be
 | |
|     described as passed with warning.  if the -Ac is not used, the the same
 | |
|     test will be failed with errors.
 | |
| 
 | |
|     Fixed up some issues with the timer code, specifically so that timed runs
 | |
|     are based on the number of seconds elapsed, not actual time, this was an
 | |
|     issue during timed runs, and the system time was changed.
 | |
| 
 | |
|     Fixed an issue with the block range calcualation, when specified with the
 | |
|     -S option. The last LBA calculation was wrong, of by transfer size - 1.
 | |
| 
 | |
|     Fixed an issue that was intruduced in 1.3, where percentage read/write
 | |
|     always assumed error checking enabled.
 | |
| 
 | |
|     Fixed the -s and -S options so that they now allow for hex and oct input
 | |
|     from the command line.
 | |
| 
 | |
|     Modified the fsync to not be called on character raw devices, this was
 | |
|     causing a false failure on IO thread exit.
 | |
| 
 | |
|     Ross S. W. Walker found a significant performance drop in IO throughput.
 | |
|     This was caused by calling sleep(0) by default on every IO.  Modified
 | |
|     the code so that if delay is zero, the sleep is not called.
 | |
| 
 | |
| CHANGES SINCE v1.2.x
 | |
| 
 | |
|   Major Changes:
 | |
| 
 | |
|     Added synchronization at the block level between threads as the default.
 | |
|     Also added an option to serialize IO and the IO operation level but it is
 | |
|     not the default.  Added to new options to -A, s and S, to manipulate these
 | |
|     new synchronization and serialization features.
 | |
| 
 | |
|     Added the target, cycle start time, seed, and hostname info to the mark
 | |
|     option. When the mark option is specified, the LBA number, the pass
 | |
|     count, the start time in UTC, the seed value, the hostname, and the
 | |
|     target is added to the front of each LBA data set, the remainder of the
 | |
|     data set is then filed with the requested data pattern.
 | |
| 
 | |
|     On a data miscompare, disktest will now reread the lba that caused the data
 | |
|     miscompare and present that data in the dump file and stdout.
 | |
| 
 | |
|     Add options to -A.  If -Ag is specified, all threads to all tagets are
 | |
|     killed, vs. threads to only the target that had the error.  -Am, will write
 | |
|     a marker, DISKTEST ERROR OCCURRED, to LBA 0 of the failing target device.
 | |
|     To turn off the reread on data miscompare us the option -Ar. The orginal
 | |
|     use of -A, continue on error, is now the option -Ac. -Aw will allow for
 | |
|     WORM tesign when using -pR.  -As and -AS are new IO sycronization options.
 | |
| 
 | |
|     A new option -M has been added.  This will override the use of the cycle
 | |
|     start time on the mark data and set it to the specified value up to 8 bytes.
 | |
| 
 | |
|     Added new seek pattern, -pr, random interleaved.  The way this seek pattern
 | |
|     functions is that a random LBA is selected, and then it is written to, if
 | |
|     write is specified, then read from, if read is specified, before selecting
 | |
|     a new random LBA.  To get the original random, which supports the Duty
 | |
|     cycle function and writes and read to random LBAs for each seek, use -pR.
 | |
| 
 | |
|     Added a delay time option, -t <delay>.  This will allow a user to specify,
 | |
|     in milliseconds, the amount of time for each thread to delay before
 | |
|     performing each IO operation.  The default is to not delay.
 | |
| 
 | |
|     Added a LBA alignement offset option, -o <offset>.  This option allows a
 | |
|     user to specify the LBA which IO will start from and be aligned to.  For
 | |
|     example if -o3 is specified for 1024 byte IOs, then the LBA alignment for
 | |
|     IO will start at LBA 3 and be aligned at LBA 5, 7, 9, etc.  Instend of
 | |
|     aligned at LBA 0, 2, 4, 6, 8 etc.  This is used to match the IO alignment
 | |
|     to the storage device striping, or volume managment alignement in an OS.
 | |
| 
 | |
|   Minor Changes:
 | |
| 
 | |
|     The -d option use to reset the count at every 512 interval regardless of the
 | |
|     requested dump size.  This made it difficult to dump current data content
 | |
|     from the filespec and compare it with misscompare data.  The count is now
 | |
|     consistent with the requested dump size.
 | |
| 
 | |
|     Modified the dump file to include the start arguments and the target.
 | |
| 
 | |
|     The timed test, -T, now works correctly with specifing cycles, -C.
 | |
| 
 | |
|     During cycle testing, the random data, -z,  is now different for each cycle.
 | |
| 
 | |
|     Added the -F option to the -? usage.
 | |
| 
 | |
|     When a data miscompare occures, the data printed to stdout now shows the
 | |
|     byte offset of the first byte that caused the miscompare, and 16 bytes of
 | |
|     data at that offset.
 | |
| 
 | |
|     Added a compile directive for debug information, so that debug type code is
 | |
|     now #ifdef'd.  To us the -V option, the debug directive _DEBUG must be
 | |
|     speicifed at compile time.
 | |
| 
 | |
|     Added the usecs an IO takes to complete in the debug information when using
 | |
|     verbose level 5.
 | |
| 
 | |
|     The option -ma has been change to only having to specify -m
 | |
| 
 | |
|     When using the -F option to specify more then one target, there was a bug
 | |
|     were the mutex was held for all targets during data compares, this has now
 | |
|     been fixed so that each target holds its own set of mutexes.
 | |
| 
 | |
|     Changed stdout to not buffer its output.
 | |
| 
 | |
|     Modified the volume sizing function for aix, so that it could use the
 | |
|     extended functions for getting the volumes size when DF_LGDSK is set
 | |
|     as a flag in the devinfo struct.
 | |
| 
 | |
|     Modified the Makefile.aix to support compiling of a 64bit binary by
 | |
|     default.
 | |
| 
 | |
|     Added additional checking when attempting to generate a random LBA target
 | |
|     to lower the need to regenerate an LBA after alignment and transfer size
 | |
|     are taken into account.
 | |
| 
 | |
|     The heartbeat option now shows statistics for the hearbeat interval, and
 | |
|     not the aggregate of the cycle.  Also added more discription to the
 | |
|     statistical output to discribe the heartbeat, cycle, and total stats.
 | |
| 
 | |
|     Modified the block alignment macro so that non power of 2 transfer sizers
 | |
|     will align correctly.  Previously, when transfering non 2^n trnasfer sizes
 | |
|     the nearest 2^n would be used.
 | |
| 
 | |
|     Add a patch to the code, provided to me by Oliver Paukstadt, were on s390,
 | |
|     need to specify that length of the value used for "longest time" in the
 | |
|     timer code.
 | |
| 
 | |
|     When an error occurs in io, the errno has been added to the output line.
 | |
| 
 | |
| CHANGES SINCE v1.1.x
 | |
| 
 | |
|   Major Changes:
 | |
| 
 | |
|     A new option -F has been added.  This allows the use of a file to discribe
 | |
|     the targets that disktest will run against.  This should work as if an
 | |
|     individual command line was started for each of the targets specified in the
 | |
|     file.
 | |
| 
 | |
|     Add an option, C, to the performance option -P.  This allows the user to
 | |
|     specify at the end of each cycle or test, to display the performance
 | |
|     information for the cycle.  In the case were there is only one cycle, then
 | |
|     the total and cycle performance data will be identical.
 | |
| 
 | |
|   Minor Changes:
 | |
| 
 | |
|     Added day calculation to runtime statistics.
 | |
| 
 | |
|     When setting a finite pass count, the passes would continue one more cycle
 | |
|     then specified.
 | |
| 
 | |
|     Added fsync on close for unix systems when doing file IO.  The fsync will
 | |
|     occur in between cycles and at the conclusion of a test.  Also added a
 | |
|     modification to -If, -Ifs, this will force an fsync on every write.  The
 | |
|     default is to only fsync at the end of a cycle or test.
 | |
| 
 | |
|     When using the the mark option, -m, disktest would some times report a
 | |
|     false data miss compare.  Also the only -m available now is -ma.  There
 | |
|     are cases that could cause false miss-compares when using variable block
 | |
|     transfer size and the -mf or -ml options.  For now these modifiers have
 | |
|     been disabled.
 | |
| 
 | |
|     Disktest now detects the size of a file when doing filesystem IO tests. It
 | |
|     previously defaulted to the internal default of 2000 LBAs.
 | |
| 
 | |
|     Updated the man page and usage text to describe option -z and option -Q.
 | |
|     They have always been there, but never in the documentation.
 | |
| 
 | |
|     I had made use of lots of globals to share data between threads. Most of
 | |
|     these have now been cleaned up.
 | |
| 
 | |
|     when using the -PPA option, the values were being rounded and not showing
 | |
|     the calculated tenths.
 | |
| 
 | |
|     When running -C0, dsktest was showing 'Starting pass x of 0', removed the
 | |
|     'of 0' part.
 | |
| 
 | |
|     Statistics are never being shown when using -C0 option.  Now, stats will
 | |
|     be shown for each cycle and the total for all cycles.
 | |
| 
 | |
|     The process ID that is shown as part of the running test is unique to the
 | |
|     test running, not to each thread.  This change was made to make it easier
 | |
|     to track a single test out of a log file by searching for the id.  It is
 | |
|     also that same id used for the random seed and the dump file identifier.
 | |
| 
 | |
|     The -f option did not take into consideration the endian-ness of the arch.
 | |
|     this would cause issues in the line value of the data pattern when using
 | |
|     the option.  This has been fixed.
 | |
| 
 | |
|     Added IFDEF for Power when using ioctl BLKGETSIZE where the size must be a
 | |
|     unsigned long for the value to return correctly
 | |
| 
 | |
| CHANGES SINCE v1.0.x
 | |
| 
 | |
|   Major Changes:
 | |
| 
 | |
|     Updated performance output based on command line.  Gave one decimal in
 | |
|     MB/s output.
 | |
| 
 | |
|     Rewrote -pL IO routine to show correct stats.  Now shows pass count when
 | |
|     using -C.
 | |
| 
 | |
|     Added dump function from command line.  Created formatted dump output for
 | |
|     Data miscomare and command line.
 | |
| 
 | |
|     Modified performance statistic printing to be more accurate with respect
 | |
|     to throughput and IO/s.  Added one decimal place of precision in MB/s
 | |
|     calculation.
 | |
| 
 | |
|   Minor Changes:
 | |
| 
 | |
|     Code cleanup to remove the plethora if #ifdef for windows/unix functional
 | |
|     differences.
 | |
| 
 | |
|     Updates to parsing routines for user input.  Added multipliers for -S and
 | |
|     -s command line arguments. Forced default seeks to default if performing
 | |
|     a diskcache test.
 | |
| 
 | |
|     Can now leave off filespec the full path header as it will be added based
 | |
|     on -I.
 |