Skip to content

Commit 596a95c

Browse files
committed
First commit after moving to own project
0 parents  commit 596a95c

37 files changed

+8601
-0
lines changed

CHANGELOG

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

0 commit comments

Comments
 (0)