STB Suite

DMM Advanced Options

DMMOptionsAdvanced

In the lower right corner of the DMM Test Setup Tab there is a button named Advanced Options

As the name implies, the Advanced Options page is full of options which you can change to effect various DMM tests and processes.

Advanced Options is one of the STB Suite pages which has grown over time. As new options are added they almost always go to the end of the page – so the order of the items available to change on this page is somewhat random.

There are a lot of options – currently 19 of them.

This article will go through the options one at a time and describe what tests each option may modify, and basically what each option does – and hopefully how to use these options in your day-to-day testing to improve your test throughput.

The Advanced Options Page

Here’s a picture of the Advanced Options (AO) page with numbers added to the options we will discuss. These numbers do not appear on the actual Advanced Options page.

But first – a general word of advice.

Whenever you change anything on the Advanced Options page you must click on the OK button in the upper right corner in order for your changes to be saved.

OTOH – if you made a change and want to discard the change, click the Cancel button instead.

All saved changes which you make to the Advanced Options page will be applied to each test step in your DMM test sequence. Make a change on the AO page and that change will be applied to all of your test steps.

Plus you can make Advanced Options changes that are different for every test step!

That means that you can have one test step use a Queue Depth of 32, and the next test step use a QD of 1.

The best example of this “Advanced Options – per-test” feature is AO #16 – the “Special Text to log for this Test”. For each of your DMM test sequence test steps you can enter unique text into this field and the text will be logged into the DMM .log files in that test steps section.

If you leave that text the same (don’t change it for the next test step) that same text will be repeated in all of the subsequent test steps. However you can change this text for each test step – giving your .log files your own unique and detailed annotations.

A good example of this is a 3-pass disk purge. Enter special text like “Write the entire drive will all 0’s” data in AO #16 for step 1, then for step 2 enter “Write the entire drive with all 1’s” ,etc – changing the text for each of your test steps.

In other words – if you set an advanced option it will be remembered and applied to all subsequent test steps – but you don’t have to.

You can have totally different Advanced Options set for each test step.

DMM’s Save & Load Setup will remember your Advanced Options for each test step!

Total versatility!

The Options

Below is a list of each of the Advanced Options with a description of what the option does and how you might use it in your testing.

Option 1 – FUA

“FUA” stands for Force Unit Access. This option has to do with READ and WRITE commands. In normal operations the disk drive under test will make full use of its cache memory in order to speed up data transfer to and from the drive. Without FUA instead of having to wait until the data from your WRITE command is actually all the way on the disk platter the disk will signal that the command is complete as soon as the data has been transferred into the drives (much faster) cache memory.

OTOH – if you set the FUA option then the disk will not signal that the WRITE is complete until the data has gone all the way through the drive and written on the magnetic platter media.

Setting the FUA option essentially tells the disk drive “do not use any caching on this WRITE or READ command”

Obviously setting FUA will have a huge negative effect on drive performance. It is easy to see this for yourself – simply define a WRITE test step with FUA cleared, then define a second identical WRITE test with FUA set.

Here is the AO setting to set FUA for the second test step –

And here is the Test Sequence Detail showing how FUA is of for step #1 and is set for test step # 2 –

 

And finally here is the transfer rate performance difference from the DMM .log file-

10/01/2015  10:28:29  Test Completed Successfully

Time for test: 327 ms
Transfer Rate: 179.19 MB/sec
I/O Per Second: 2868.50 IO/sec
Number of Blocks Transferred: 120,000
Fastest Command Completion Time: 0.248 ms
Slowest Command Completion Time: 13.418 ms
Average Command Completion Time: 0.342 ms
Standard Deviation of Command Completion Times: 0.595 ms

10/01/2015  10:28:29                                                 PASSED

10/01/2015  10:28:34  Test Completed Successfully

Time for test: 4 Sec, 38 ms
Transfer Rate: 14.51 MB/sec
I/O Per Second: 232.29 IO/sec
Number of Blocks Transferred: 120,000
Fastest Command Completion Time: 3.369 ms
Slowest Command Completion Time: 8.260 ms
Average Command Completion Time: 4.295 ms
Standard Deviation of Command Completion Times: 0.148 ms

10/01/2015  10:28:34                                                 PASSED

 

 

Why use FUA? Setting FUA is a quick way to turn all drive caching on and off. Many RAID controllers want all caching turned off on the connected drives so this AO gives a quick way to set that up during testing.

 

 

Option 2 – Stop/Start

This AO has two settable parameters –

And these parameters are used with the DMM Spin Down/Up test step –

As you can see the default is that when the Spin Down/Up test is run the test will run one cycle of spinning the drive down, then back up. The second parameter lets you enter a delay number in seconds defining how long to wait between multiple stop/start cycles.

Option 3 – Byte check On Verifies, Write Verifies

VERIFY, and WRITE AND VERIFY commands have two modes of operation.

The first mode – without byte check – will just issue the command to the drive, let the drive do its internal ECC and data integrity checking, and will pass if the drive says the data is OK or will fail if the command fails or the data integrity check fails.

The second mode let’s you actually send the data that you expect to be on the drive to the drive with the VERIFY command. The drive will do its internal data integrity/ECC checking as before, but it will also do a byte-by-byte comparison with the “byte check” data which was sent with the command.

Here is the definition from a SCSI command reference document –

This Advanced Option gives you another addition layer of data integrity checking which you may use in your testing.

Option 4 – Queue Depth

This option lets you specify the deepest queue depth you would like to have while testing.

DMM will spawn a separate test thread for each level of Queue Depth you specify.

In the best case your drive will accept the Queue Depth you specify and will queue and execute each command as fast as your test system can.

In the case where you specify a Queue depth greater than what the drive supports (SATA drives typically support up to 32) DMM will stop trying to issue additional queued threads as soon as the drive signals that it cannot accept any more.

Since DMM is multi-threaded and each drive under tests acts as if it is the only drive being tested you are able to mix drive types and attain the maximum queue depth per drive.

So if you have set the AO Queue Depth Option to 128, and you have both SATA and SAS drives connected under test, the SATA drives will queue up to 32 deep, while the SAS drives will queue up to 128.

Note: each Queue Depth thread is a completely separate test thread which uses it’s own system resources, memory, etc. It is possible to specify a test scenario which your test system cannot support – if you have hundreds of drives under test and you specify a queue depth of 128 your test system will most likely slow to a stop as it tries to service all of those test threads!

 

 

Option 5 – Delay

This option modifies the DMM Delay Test Step –

The Delay test step does just that – when DMM encounters the delay step in the test sequence it pauses or delays for as many seconds as are specified in this AO option – the default is 60 seconds.

Option 6 – Timeout

 

This option lets you specify DMMs command timeout. The default timeout is 30 seconds – once a command times out the operating system driver will do its best to abort the command, remove it from all command queues, etc. But this process does not always work cleanly and command timeouts can lead to system stability issues.

An example for where a different command timeout is appropriate could be an older tape drive which takes several minutes to complete a REWIND command when the tape is at EOT. In hat case you might want to set the command timeout for 300 – timeout is specified in seconds.

Option 7 Write/Read I/O Ratios

This option lets you specify the mix ratio of write to read commands to be used in the Streaming, OLTP, File Server, and Workstation test steps.

Option 8 – Adjacent Track Interference Test

Here is the definition of the Adjacent Track Interference Test from the STB Suite Manual –

Adjacent Track Interference

The AdjTkIntf (Adjacent Track Interference Test) test step tests for data integrity between physical tracks on the Disk Under Test.
Adjacent tracks are considered to be adjacent tracks on the same platter (NOT adjacent tracks on the same cylinder).

So given a track uniquely characterized by its Cyl:Hd values, the track “to the left” is (Cyl – 1):Hd, while the track to the right is (Cyl + 1):Hd.

Call these 3 tracks Tr_L, Tr_M, Tr_R.

We write “All Zeroes” to all 3 tracks.

Then we write a different pattern to Tr_M (the number of times we write to Tr_M is what you input on the Advanced Options edit box “Number of Writes to Middle Track”).

After writing track Tr_M say 100,000 times, we then look to track Tr_L, and Tr_R and see if “All Zeroes” is still there.

If there is all zeroes, the test succeeds.

If any bit is different, the test fails.
The test parameters are defined on the Advanced Options page  which is shown here –

As you see you may specify the CylinderHead, and Number of Tracks Writes to use in the test.

Option 9 – Start Seed

In order for a computer to generate random numbers, such as a pattern of random data to be used in a test, the computer needs to uses its Random Number Generator. Random Number Generators use “seed” numbers to define the randomness and the content of the random numbers it generates. In other words “random” data isn’t really truly random. If you initialize the random number generator with the same seed, the random generator will generate the same list of “random” numbers.

In order to let you introduce more randomness into your random data generation STB Suite gives you the option to specify what Random Seed number you want to use when you generate your random data.

DMM’s default Random Seed is 1, if you want to use a different number you enter that number here in Advanced Options # 9.

If you do use your own Random Seed be sure to use it throughout your test sequence.

Options 10 & 11 – Additional Overlays

These two options, as their name implies, supply additional data overlay options.

The first data overlay option is found on the Test Setup tab in the Data section –

This Overlay Block # option will overlay the first four bytes of every block of data with the LBA number the data is being written to. Doing this makes every block of data on your drive unique, because in addition to the data pattern chosen for the test each block of data will also contain the LBA number of the block that the data was written to.

This LBA over will be taken into account when data compare is used with the Compare on Reads option.

Advanced Options #’s 10 and 11 provide more overlays, which can result in even better data integrity testing.

First – Option 10 lets you specify a unique “key” value which will be overlaid onto each block of data. When data compare is used and this key option has been set the key will be taken into account – one more level of data integrity checking.

Next, Option 11 lets you overlay a date/time stamp data onto each block. This will record the exact time each block of data was written to the drive.

You can use the Leeway Time for Comparing Times field to specify if you want to flag that the data you are reading is “old”.

For example, yesterday you ran a test which wrote the entire drive with a random data pattern using LBA overlay and using the Date/Time Stamp.

Now today you run another test, once again writing the entire drive, then reading the drive with data compare, using the leeway time default of 120 minutes.

If everything works in your drive as it should today’s test should pass.

But, if there was a problem with your drive and for some reason the drive reported that it successfully wrote LBA 1234, but in fact it did not write it today, when the read with data compare checks that block it will see that the Date/Time stamp indicates that the data was written yesterday – not today.

This type of data integrity testing is very useful for troubleshooting cache problems, queue problems, and other firmware issues where being able to know when the data was written is important. Using this option with Option #10 allows you to confirm when the data was written, and by whom it was written. These two data overlays, coupled with the LBA block # overlay provides the highest level of data integrity checking available!

Option 12 & 13 – Stop On Error Options

 

Options 12 & 13 control what DMM will do if a drive under test has an error (command error or data compare error).

The default setting is Group1, Stop Current Test on Error.

 

Here are the choices:

Group1, Stop Current Test on Error

This will stop the currently running test step and will move on to run the next step in the test sequence.

Group1, Stop Current  All Tests on Error

This will stop any further testing on this drive.

 

 

Note: when you start your test run you are presented with these options which have to do with what to do about errors if you are looping your test sequence –

The default is quit looping completely on all drives. In other words, if your loop is set to run for 24 hours and you get an error on one drive 1 hour into testing, all drives testing will be aborted.

The second choice says if one drive gets an error quit looping on that drive but continue looping/testing all other (non-failed) drives.

Group1, Ignore Errors

Ignore errors, don’t log anything, just keep trying to run the test sequence.

Option 13 is another “on error” option which lets you specify a program to be run when a drive has an error.

The program that runs, and any command-line arguments you wish to pass to the program are specified in Option 17 –

An example of using this Advanced Option would be to send an email if a test fails. Or turn off a programmable power supply. Or run a special utility to extract unique manufacturing data from the drive.

Any program can be run when a testing error occurs.

Option 14 – Path to Log Files

Use this option to specify where DMM should write its .log files. Use the Browse button 

To find the folder you want your log files to be in.

Option 15 – Add Date-Time stamp to Log file name

Leaving this option not clicked (default) will create one logfile for each drive under test, based upon its address on your test system and its serial number.

In this case if you test the same drive twice, the first test will create and write the log file, and the second and all subsequent tests of that drive will append to the original log file.

If you want DMM to create a separate unique log file every time a test is run then you can check this option. This will append the date/time to the end of the log file name, so tests on the same drive can be looked at (sorted) by data/time using the file date/time field.

Option 16 – Special Test for this test step

You can enter text here which will be printed to the .log file in this test steps section – here’s an example:

 

You can specify different Special Test for each Test Step.

By aware that if you enter Special Test for one test step, then define another test step and don’t go back into Advanced Options to change this field the same text as was previously entered will remain and will be printed for subsequent steps.

It is easy to just delete the data in the Special Text field, then click the Advanced Options OK button to leave this field cleared out until you need it again.

Option 17 – External Program Name and parameters

This option was described under Option 12 & 13 – the Stop On Error Options

 

Option 18 – Multiple Workers

This option is for providing maximum stress to a drive during testing. What it does is fires off multiple “workers” or test threads – all running against the same drive.

So if you were to specify 5 workers DMM will run 5 independent copies of the test, simultaneously, to the drive under test. This is used to simulate an environment where multiple tasks or programs are all accessing the same disk at the same time.

This option will provide the heaviest I/O load possible to a drive and is perfect for testing for queuing problems, performance problems, and measuring what happens to drive performance under various loads, etc.

Option 19 – Delay Between Commands

In the real world there can be times when a data stream to or from a drive will not be constant, but will be interrupted occasionally for any number of reasons. This option lets you introduce delays, either every n I/O’s or every n microseconds , or randomly. The time (length) of the delay can be specified as well.

 

Summary

The number of Advanced Options has grown over the years as customers have asked us “can you give us an option to do x,y, & z?”

We always try to respond with a “yes we can” to that question – so if there is an option, a test, or any feature that you wish the STB Suite had – please let us know!