What is new in 7.0 since 6.2

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

What is new in 6.2 since 6.1

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

What is new in 6.1 since 6.0

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

What is new in 6.1 since 6.0

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

What is new in 6.0

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

What is new in 5.3 since 5.2

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

What is new in 5.2 since 5.1

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

What is new in 5.1 since 5.0

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

What is new in 5.0 since 4.2

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

What is new in 4.2 since 4.1

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

What is new in 4.1 since 4.0

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

What is new in 4.0 since 3.2

Bug ID

Synopsis

4345802

Request for port of diskomizer to x86 architecture.

What is new in 4.0 since 3.2

What is new in 3.2 since 3.1

The major new features are:

  1. 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

  2. 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

  3. 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.

  4. 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.

  5. Can now have multiple sequential passes. Setting the option SEQUENTIAL_PASSES to the number of sequential passes that you wish to have.

  6. 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.

  7. 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.

What is new in 3.1 since 3

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.



New Features in 3




Copyright 2009-2002 Sun Microsystems, inc. All rights reserved.

Use is subject to license terms.