• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1Disktest Version v1.4.x CHANGELOG
2
3CHANGES 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
96CHANGES 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
200CHANGES 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
262CHANGES 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