-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
First commit after moving to own project
- Loading branch information
0 parents
commit 596a95c
Showing
37 changed files
with
8,601 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,317 @@ | ||
Disktest Version v1.4.x CHANGELOG | ||
|
||
CHANGES SINCE v1.4.x | ||
|
||
Major Changes: | ||
|
||
Minor Changes: | ||
|
||
Added feature to support sweep type IO using the -ps option. IO will be | ||
issued to the nim LBA then MAX LBA - transfer size alternating for each | ||
IO transaction | ||
|
||
Windows would exit testing with a failure message when running to a block | ||
device. Found that running fsync to anything other then a file will | ||
cause issues for windows | ||
|
||
Windows would run at 100% CPU. Found that the busy wait for thread clean- | ||
up was causing this. Now using WaitForSingleObject, which has the same | ||
function, but removes the 100% CPU issue. | ||
|
||
On Linux, volumes > 2T were not being detected correctly with there volume | ||
size. Modified the code to call BLKSIZE64 IOCTL of BLKSIZE IOCTL fails | ||
to get the volume size for the volume. | ||
|
||
Added a check to make sure that only regular files were used when using | ||
the -F option. | ||
|
||
If filespec is not defined, return message as type ERROR instead of | ||
type WARN. | ||
|
||
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 miliseconds, 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. |
Oops, something went wrong.