Diskomizer 7.0 is a major release that marks the movement of the development tree from a private source gate into the stc2 test suite gate.
The main noticeable change is that the name of the executable has changed. It is now “diskomizer” and not the slightly odd “diskomizer64mpism”.
BugID |
Synopsis |
Introduced during 7.0 development |
---|---|---|
6724242 |
diskomizer fails to run if sendmail is not installed |
no |
6736579 |
diskomizer should support plus1tb vtoc labeled disk |
no |
6746758 |
diskomizer dumps core in findap() |
no |
6751320 |
The human readable numbers diskomizer produces can suffer from incorrect rounding. |
no |
6748819 |
Diskomizer Makfiles should change to follow STC standard |
no |
6752582 |
Diskomizer should be in the STC2 gate |
no |
Diskomizer 6.1 is a bug fix release. There is no significant new functionality.
BugID |
Synopsis |
Introduced during 6.2 development |
---|---|---|
6525454 |
diskomizers uscsi option should be able to use 16 byte CDBs |
No |
6546387 |
daio_fs should only try and empty direcotries if they contain data. |
No |
6563972 |
typo in diskomizer small_memory and filesystem templates, it should reference NPROCS and not NPROC |
No |
6681467 |
daio_fs attempt so delete files that it has not created. |
No |
6702845 |
diskomizer will try and open daio libries with a trailing space |
No |
6703053 |
Diskomizer should not stop using EFI labels just because of non-zero reserved fields. |
No |
6703768 |
The example code for user supplied vtoc reading does not build with the current compiler |
No |
Diskomizer 6.1 is a bug fix release. There is no significant new functionality.
BugID |
Synopsis |
Introduced during 6.1 development |
---|---|---|
6500776 |
uscsi option takes a FPE excpetion if you try and use multiple paths. |
No |
4765476 |
posix aio should make use of aio_waitn when available. |
No |
4804787 |
Diskmoizer should report it's command line arguments in the output. |
No |
6347898 |
diskomizer should report usage times when it completes |
No |
6399562 |
diskomizer tips when using uscsi and setting different IO times for reads but not writes. |
No |
6481246 |
ON_ERROR=continue can cause a false positive data corruption to be reported. |
No |
4701789 |
Diskomizer makes non signal safe calls from it's signal handler. |
No |
Diskomizer 6.1 is a bug fix release. There is no significant new functionality.
BugID |
Synopsis |
Introduced during 6.1 development |
---|---|---|
6500776 |
uscsi option takes a FPE excpetion if you try and use multiple paths. |
No |
4765476 |
posix aio should make use of aio_waitn when available. |
No |
4804787 |
Diskmoizer should report it's command line arguments in the output. |
No |
6347898 |
diskomizer should report usage times when it completes |
No |
6399562 |
diskomizer tips when using uscsi and setting different IO times for reads but not writes. |
No |
6481246 |
ON_ERROR=continue can cause a false positive data corruption to be reported. |
No |
4701789 |
Diskomizer makes non signal safe calls from it's signal handler. |
No |
Diskomizer 6.0 is a major release of Diskomizer. Having been repackaged and also containing native AMD64 support.
It also now contains usage tracking. This is done via email which is only sent if your domainname ends in “.sun.com”.
BugID |
Synopsis |
Introduced during 6.0 development |
---|---|---|
6346045 |
Fix for 6219651 breaks amd64 diskomizer |
Yes |
6346703 |
daio_uscsi would like to be able to specify a range of timeouts for the packets |
RFE |
6346779 |
daio_uscsi reports "ERR drectio..." |
No |
6299237 |
daio_fs fails to check the return status of close. |
No |
6249288 |
Diskomizer should support directio |
RFE |
6256524 |
DAIO pread and uscsi both do data checking after a write and not a read. |
No |
4871491 |
Diskomizer Package Name Needs SUNW Naming Convention |
RFE |
4480103 |
x86 diskomizer should be build -xO4 now the compiler is fixed |
RFE |
6227344 |
daio_fs option broken in Solaris 8 Err libdaio_fs.so: ld.so.1 |
RFE |
6236850 |
Should be able to set the number of times diskomizer will write to the device. |
RFE |
6236851 |
DAIO USCSI should have the option to ignore all partition information |
RFE |
6237443 |
USCSI modules read capacity gives the wrong capacity every time. |
No |
6321421 |
The dd command reported by dail_fs is bogus |
No |
5074308 |
Diskomizer should be ported to be able to be build with gcc |
RFE |
5097576 |
AMD64: Diskomizer should be ported to AMD64 to support Solaris 64bit kernel test |
RFE |
6328717 |
Diskomizer gets confused when reading device names from a tty. |
No |
6328720 |
Diskomizer needs to collect usage statistics |
Yes |
Diskomizer 5.3 is a minor release of Diskomizer. The two new DAIO modules offer some interesting options for testing raw scsi devices using USCI and also loading file systems.
The fix for 5072483 now means the package is fully relocatable.
BugID |
Synopsis |
Introduced during 5.3 development |
---|---|---|
4454450 |
Would like diskomizer be able to do io using uscsi |
RFE |
5039253 |
Diskomizer is not reporting stalled IOs |
No |
5039281 |
The daio_async routine knows about pread and pwrite and should not. |
No |
5040046 |
diskomizer print a stack attempting to decode a time stamp |
No |
5040353 |
Would like a daio_fs option. |
RFE |
5055708 |
Report number of prev successful reads of same block when corruption is reported |
RFE |
5071988 |
Should be able to use the cjt and isi killer patterns. |
RFE |
5071990 |
mprotect write buf decision is made on every loop |
No |
5072483 |
Diskomizer should be linked using $ORIGIN |
RFE |
5103213 |
Diskomizer is ignoring all but the first error handling function |
No |
Diskomizer 5.2 represents a minor release of diskomizer. For the first time since diskomizer 3.0 this version was profiled and significant performance improvements made. Diskomizer now treats unknown options passed to it as fatal errors and exits.
The biggest change is that the errors it reports are I hope clearer than before.
BugID |
Synopsis |
Introduced during 5.2 development |
---|---|---|
4768023 |
Device names offsets and messages in errors are inconsitant. |
No |
4790722 |
5.1 beta2 hangs if ON_ERROR_CORRUPT=RETRY is specified as an option |
No |
4793692 |
diffs files are confusing about offsets. |
RFE |
4796922 |
There needs to be a daio unlink command. |
No |
4804783 |
diskomizer should have an option to use SHM_PAGEABLE flag |
RFE |
4804787 |
Diskmoizer should report it's command line arguments in the output. |
RFE |
4809164 |
diskomizer should have 16, 32 and 64 bit sequences for the data pattern |
RFE |
4809254 |
Diskomizer should provide and option to not detach from share memory. |
RFE |
4835925 |
Diskomizer should make a better effort to describe corruptions it fi |
RFE |
4786553 |
Diskomizer could be more efficient about memory allocations. |
No |
4809254 |
Diskomizer should provide and option to not detach from share memory ever. |
No |
4863930 |
diskomizer is running, but not generating load |
No |
4864568 |
read_buffer_constant_init consumes 15% of diskomizers user time |
RFE |
4866723 |
Diskomizer calls restart_stopped_devices a lot when it need not. |
RFE |
4878813 |
Diskomizer 5.1 I/O fails with no reason |
No |
4907118 |
diskomizer should understand new v1.00 EFI GPT header |
RFE |
The big new features in 5.1 are the support for a fail over path for devices such as a T3 and the ability to handle luns of greater than 1TB if the OS supports it. You can specify the names of all the paths to a given device on the DEVICE option line. Groups of paths can be bracketed and are then treated as paths to the same device. The paths are still sanity checked so that Diskomizer will report a failure if the two paths do not refer to the same device.
BugID |
Synopsis |
Introduced during 5.1 development |
---|---|---|
4361362 |
diskomizer reports block offset in an inconsistant way. |
No |
4426024 |
provide config files for Photon, A3500, T3 etc |
RFE |
4479089 |
diskomizer is reporting negative times for the average io time. |
No |
4604640 |
The -d option's usage message is misleading. |
No |
4614474 |
would like a way to fail over to another path when an IO error is seen. |
RFE |
4614880 |
daio interface needs a DKIOCINFO interface. |
No |
4615211 |
Diskomizer is calling close not daio->close |
No |
4615937 |
daio should export a findap_fini routine |
No |
4616003 |
diskomizer is confused about which assert.h file to use. |
No |
4618221 |
Diskomizer takes a SEGV if no devices can be opened. |
No |
4618958 |
Diskomizer should timestamp the read o.k. messages. |
RFE |
4619022 |
Diskomizer fails to display when io will restart if seconds_to_run is zero |
No |
4629881 |
Diskomizer needs to recognise stale data from a previous run as such. |
RFE |
4646298 |
Diskomizer does not apply maths to elements in a list. |
No |
4646320 |
Diskomizer misreports ftruncate messages when using the 32bit binary |
No |
4649645 |
Diskomizer allocates to few read buffers. |
No |
4658734 |
Diskomizer in read only mode still tries to create files: |
No |
4660141 |
diskomizer 5.0 wouldn't work if not installed in the default base dir |
No |
4672176 |
64bit diskomizer should not truncate checksums to 32 bits. |
No |
4672178 |
Diskomizer should print that it has dumped a diffs file in stderr |
RFE |
4673282 |
Need to have Read only option with no checking |
RFE |
4674543 |
Diskomizer should have more exciting values for fixed value buffers. |
RFE |
4699210 |
diskomizer should support LUNs larger than 1TB |
RFE |
4701746 |
diskomizer can dump core due to a uninitialized string. |
No |
4701750 |
diskomizer can not cope with paths that have "wd" as there partition. |
No |
4702443 |
Diskomizer needs the daio version increased. |
Yes |
4703709 |
diskomizer takes a segv. |
Yes |
4703713 |
Some format strings are being expanded by SCCS! |
No |
4704532 |
Diskomizer will grow files if FILE_SIZE is not specified. |
No |
4710443 |
Diskomizer needs to scrutinise the data from efi_alloc_and_read more. |
Yes |
4710444 |
Diskomizer needs to be updated to support the stable efi routines |
Yes |
4710753 |
Need a way for user to be able to supply their own vtoc reading routines |
Yes |
4719672 |
The diffs files for 5.1alpha5 are confused and confusing. |
Yes |
4723559 |
Diskomizer should not install as user nobody. |
No |
4725260 |
Debug version should be compiled with -xs |
No |
4740649 |
Diskomizer needs to understand Tera, peta and exa bytes |
RFE |
4742307 |
Diskomizer fails to clean up data files it has created. |
No |
4742374 |
Path check should be optional. |
RFE |
4742932 |
diskomizer takes a SEGV when cancelling io using DAIO_PREAD |
No |
4744608 |
diskomizer parent process can delete all the shared memory prematurely. |
No |
4747906 |
Would like an on_error panic option. |
RFE |
4752240 |
Setting SEQUENTIAL_PASSES=10 can result in a live lock. |
No |
4752248 |
Diskomizer wont start if started from /opt/CTEdiskomizer using bin/disko* |
No |
4752277 |
Diskomizer should say why it is exiting. |
No |
4760332 |
diskomizer can take an arithmetic excpetion. |
No |
4761882 |
Diskomizer 5.1aplha6 can report a false positive. |
Yes |
4763066 |
Would like to be able to do io from a file. |
RFE |
4765794 |
diskomizer fails to open paths specified as { dev1 dev2 } |
Yes |
4768945 |
Diskomizer fails to report the whole check sum. |
Yes |
4768947 |
Diskomizer reports locked blocks |
No |
4786461 |
Diskomizer can get a BUS error |
No |
4789023 |
diskomizer should allow you to pass a third argument to uadmin on error |
RFE |
4789155 |
diskomizer should understand numerical uadmin commands. |
RFE |
The two main features introduced in Diskomizer 5.0 are the ability to do IO using other than the SunOS asynchronous read and write routines and the ability to do a read only test.
The asynchronous IO models that can be used are now loaded dynamically from shared libraries. While this functionality was added to ease the porting of Diskomizer to other platforms it has already allowed one bug in POSIX aio to be found and reported before any customer sees it.
Diskomizer 5.0 no longer supports SunOS 5.5.1.
All new features and bug fixes are listed here. Many of the bugs were introduced during the development of Diskomizer, those bugs, are marked in this table and would never have been seen by users.
BugId |
Synopsis |
Introduced during 5.0 development |
4338128 |
Diskomizer should have a read only mode..... |
RFE |
4376100 |
Should not display state change times that are after it will have exited |
No |
4415619 |
Option debug_allow_core dump does not. Just results in a forever loop. |
No |
4416213 |
disko sometimes fails to rmdir /tmp/diskomizer |
No |
4416247 |
parent process should not do I/O |
RFE |
4422077 |
sparc_asm.s should be made lint clean |
No |
4433172 |
Would like diskomizer to be able to use the posix aio routines. |
RFE |
4466677 |
Header files should be cstyle -P clean. |
No |
4466683 |
ISM, SHM or SHM_BEST allocators can fail when they should succeed. |
No |
4468736 |
New Makefile's install and clean targets fail to handle the files in etc. |
Yes |
4473985 |
error messages unclear regarding offset versus block number |
No |
4476957 |
Need to provide a way for libraries to read arbitrary options. |
RFE |
4476964 |
Would like a daio routine that uses threads. |
RFE |
4477109 |
daio needs to have a read vtoc command. |
Yes |
4477140 |
Make 5.6 the sparv7 build and remove all the cruft for support SunOS 5.5 |
RFE |
4477567 |
posix aio routines SEGV if aio_return gives an error. |
Yes |
4479087 |
diskomizer takes SEGV when doing reread with daio_sunos. |
Yes |
4479480 |
diskomizer reports data corruption when there is an io error. |
Yes |
4480163 |
disko shouldn't idle sleep if we will run out of SECONDS_TO_RUN |
No |
4483436 |
Diskomizer "leaks" writemap references when it gets defered io. |
No |
4494463 |
Diskomizer be able to retry opening devices when they fail. |
RFE |
4494497 |
Makefiles missing at least one CFLAGS setting from 4.x |
Yes |
4495484 |
Diskomizer source files need moving out of the top level workspace directory |
RFE |
4501260 |
diskomizer is confused about the checker that is in use. |
Yes |
4501298 |
diskomizer documentation needs updating to reflect the move of the web page |
No |
4502049 |
You should be able to specify short names for the daio libraries. |
Yes |
4503005 |
New makefiles do not have targets for publishing everything. |
Yes |
4505023 |
Diskomizer takes a SEGV when exiting after using the posix aio routines. |
Yes |
4510178 |
posix aio takes an assertion failure. |
Yes |
4519843 |
diskomizer 5.0alpha7 is not large file safe in 32 bit mode. |
Yes |
4522300 |
Diskomizer needs to gacefully spot bug 4520934 |
Yes |
4530747 |
diskomizer dumps core when sent a SIGINT from the keyboard. |
Yes |
4545673 |
Diskomizer can't cope with targets with more than 10 luns |
No |
4632596 |
Diskomizer exits prematurely. |
Yes |
Diskomizer 4.2 represents a bug fix release with no new functionality. There are no new options.
BugId |
Synopsis |
4473255 |
an errored write is remembered and its checksum used for future reads |
4473272 |
always reports continuing even when retry is set for errors |
4473338 |
EXPERT_retry count options are unsigned but are evaluated as signed |
4477439 |
diskomizer takes a SEGV when starting and stopping io |
4486387 |
parent process not waiting for its children when exiting usr1_exit |
Diskomizer 4.1 represents a bug fix release with no major new functionality. There is just one new option and that is the " ON_WRITE_ERROR " option introduced to fix bug 4399300.
BugId |
Synopsis |
4366633 |
ftruncate error message is wrong. |
4366631 |
diskomizer uses lots and lots of disk space when it need not do. |
4366632 |
The mmap shared memory option is inefficient when faced with small allocations |
4369808 |
diskomizer checks mmap for ? and not MAP_FAILED when reading args. |
4371014 |
Typo in usage strings |
4372176 |
EXPERT_AMOUNT_TO_LEAVE_UNUSED option results in test files of the wrong size. |
4375971 |
Diskomizer output gets corrupted: |
4376105 |
Diskomizer locks could be more CPU cache friendly |
4378566 |
Typo in diskomizer's request script |
4378614 |
The searching for alternate paths could be a lot faster. |
4378617 |
The checksum algorythm tends to ignore the high order bits. |
4377184 |
shared memory errors are printed by child process after main diskomizer has exit |
4393322 |
diskomizer can dump core |
4394707 |
diskomizer should not generate checksums twice. |
4399300 |
Diskomizer should not just keep retrying to write when there is an error. |
4400974 |
Errors when compiling the optimized sparc version. |
4400973 |
Make the source cstyle -P clean. |
4401366 |
write read threads do not execute function buffers. |
4400471 |
Diskomizer's option parser produces difficult to understand error. |
4402184 |
3.2: complete i/o failure left diskomizer looping. |
4400901 |
32-bit implementations do not set WRITE_BUFFER_SUPPLIED_VALUE correctly. |
4402550 |
3.2 typo |
4404877 |
SPARC diskomizer is not executing code from shared memory |
4405364 |
Diskomizer truncates test files to zero length |
4405761 |
Diskomizer should not reference an individuals alias as the support alias. |
4404886 |
diskomizer is not mapping shared memory with execute permission |
4412193 |
diskomizer gets segv when io sizes are given a weighting. |
4412176 |
diskomizer fails an assertion with a device with a large number of blocks |
4414656 |
Diskomizer release should include the option files used to test diskomizer |
4416176 |
cstyle dirtiness in asm.h |
4434294 |
Diskomizer falls over with an assertion failure. |
4447951 |
diskomizer incorrectly reports ERR aiocancel: Permission denied |
Bug ID |
Synopsis |
---|---|
4345802 |
Request for port of diskomizer to x86 architecture. |
The major new features are:
Support for the creation of test files within the filesystem:
Three options control this:
This is the size in bytes of each file to create. If specified than all the devices and files will have the amount tested on them limited to this value.
If one of the files specifeid on the DEVICE option is a directory then create this many files in that directory. One of FILE_SIZE or EXPERT_AMOUNT_TO_LEAVE_UNUSED must also be set. If FILE_SIZE is set then it will try and create this many files of FILE_SIZE. If EXPERT_AMOUNT_TO_LEAVE_UNUSED is set it will create NUMBER_OF_FILES files of such a size that EXPERT_AMOUNT_TO_LEAVE_UNUSED is left in that directory.
The amount of space to leave in each directory.
Examples:
This option will cause you to test the file /var/tmp/disko_test_file of size 2 gigabytes
DEVICE=/var/tmp/disko_test_file
FILE_SIZE=2G
Create 10 files each 200 megabytes in each of /export/vol1 and /export/vol2. You end up with twnety files:
DEVICE=/export/vol1 /export/vol2
FILE_SIZE=200m
NUMBER_OF_FILES=10
Create as 10 files leaving at least 100M free in each of the directories /export/metadisk1 and /export/metadisk2:
DEVICE=/export/metadisk1 /export/metadisk2
NUMBER_OF_FILES=10
EXPERT_AMOUNT_TO_LEAVE_UNUSED=100M
Have a test run for a given number of seconds. To do this you use the option SECONDS_TO_RUN . For example to have the test run for four hours add this to the option file:
SECONDS_TO_RUN= 4 * 60 * 60
Have IO to an individual drive, volume or file stop when an error is encountered rather than having the whole test stopped. Both the ON_ERROR_SHORT and ON_ERROR_CURRUPT options now take a STOP option.
Reporting of messages to syslog. If you set the option SYSLOG_FACILITY to the name of a syslog facility, then all messages will be logged to that facility. Other options in this area are: SYSLOG_LOG_UPTO_PRIORITY which limits the messages that get logged to those below the priority specified, STDOUT_PRIORITY and STDERR_PRIORITY which control the priorities of the messages send to the STDOUT and STDERR files respectively, OBSCURE_REPORT_PRIORITY caused the priority of the message to be reported when written to the STDOUT and STDERR files.
Can now have multiple sequential passes. Setting the option SEQUENTIAL_PASSES to the number of sequential passes that you wish to have.
Can dump a diffs file for the both the last block written and the previous block, making it easier to spot stale data. To use this set the option DISPLAY_PREV_DIFFS to 1.
Fully largefile aware, when the underlying OS is largefile aware. As the 32-bit binary is built on 5.5.1 it was not fully large file aware. It is still built on 5.5.1, but is now aware of the routines required to be fully large file aware. If those routines are present it will use them.
All the changes in diskomizer 3.2 are logged as bugs or RFEs, which are listed below.
Bug ID |
Synopsis |
---|---|
4300643 |
Diskomizer could display diff header info in a more readable manor |
4324345 |
Diskomizer is much too memory intensive on large configurations. |
4327512 |
If a block is found to be corrupt then print a diff for the previous block also. |
4333572 |
addtional diskomizer options wanted |
4335111 |
requesting a SECONDS_TO_RUN option |
4336079 |
Diskomizer should have a message catalog. |
4338780 |
Diskomizer tries to read off the end of a device. |
4338782 |
Do not report the errno if there is no system detected error. |
4338801 |
It should use pread64 when available. |
4342283 |
Please add start and error messages to /var/adm/messages |
4346499 |
The error printed when there is a realloc error is wrong: |
4357316 |
Would like an on error stop option. |
4357784 |
Would like to be able to use diskomizer to do very fast surface analysis. |
4358662 |
Diskomizer can diff the wrong block. |
4363806 |
Diskomizer fails with an assertion. |
All the changes in diskomizer 3.1 are logged as bugs or RFEs.
Bug ID |
Synopsis |
---|---|
4309211 |
Diskomizer takes a SIGBUS if it can't allocate enough space for its files |
4309236 |
Diskomizer outputs a diffs file when there has been a io error. |
4309237 |
Diskomizer fails to group all errors |
4309968 |
diskomizer can leak shared memory segments. |
4313175 |
Diskomizer fails an assertion if time moves backwards. |
4313177 |
Diskomizer gets a misaligned bus error when printing a 64 bit stack. |
4314453 |
Diskomizer reports errors when using misaligned buffers. |
4314454 |
Diskomizer fails to spot diffences in the first 4 bytes of each 8 byte word |
4321475 |
Diskomizer should display time stats to greater accuracy. |
4324346 |
Diskomizer exits without making the reason 100% clear |
4326293 |
Diskomizer does not correctly set it's exit status. |
4326546 |
The raid configruation file should set paths to use to 1 |
4326853 |
Diskomizer should have the option to mprotect it's write buffers |
4327205 |
Would like to be able to specify more than one value for write patterns |
4327206 |
Diskomizer should use the alternate lib thread when it can. |
4327229 |
Diskomizer falls over with a bus error. |
4327486 |
Please provide a script that will pull out an individual error from stdout file |
4327909 |
Diskomizer dumps a stack. |
4327510 |
Background file should make the working directory relative to cwd |
4334906 |
Using WRITEMAP_SIZE or READMAP_SIZE can result in false positive results. |
4335635 |
convert_options has a syntex error in it. |
Address space restrictions removed. If the system has enough virtual memory then Diskomizer will use all of it, attaching and detaching from memory as needed.
New shared memory allocator, best-shm for using shared memory only.
New IO thread that will write blocks and immediately read back the block.
Fast Start. Diskomizer does much of the initialisation in multi process mode, decreasing the time before IO.
Faster run time. More devices can be tested on a given system as Diskomizer is more efficient.
Separate error actions for system detected errors and data corruption's.
Improved grouping of error messages .
Separate reporting of hung reads and writes.
Improved option file:
Option files now have simple mathematics for calculating values.
Support for variable expansion in numeric values.
Options are grouped to ease understanding and configuration.
Better defaults. Some default values now dynamically set themselves.
Continuation lines supported.
Comments can be continued, so that you can comment out a multi line entry with just one #
Prompts user for the device if not set in any of the configurations.
Limited support for multiple block sizes.
Documentation written by the binary.
Faster check summing. Up to 16 times faster than the old checksum algorithm.
Live lock removed when using read_minimum.
Improved debugging of Diskomizer itself.
Instead of generating large (and useless due to bug 4277890) core files it prints a self diagnostic stack trace.
Automatically adjusts resource limits for open files so that more devices can be tested.
Copyright 2009-2002 Sun Microsystems, inc. All rights reserved.
Use is subject to license terms.