The following changes were made to dt Version 16.08:
New flags/options added:
retryDC Retry data corruptions.(Default: enabled)
looponerror Loop on error. (Default: disabled)
retry_delay=value Delay before retrying operation. (Def: 5)
Note: When looping on error, the retry delay is multiplied by the retry count,
to avoid filling up log files with frequent retries. Loop on error is useful
if you'd like to monitor an analyzer to see the underlying LBA being accessed.
Also Note: looponerror only applies to DC's, not various system call failures.
New Options Are:
history=value Set the number of history request entries.
hdsize=value Set the history data size (bytes to save).
Default hdsize=32 (set to 0 to disable copy)
Flags to enable/disable:
hdump History dump. (Default: disabled)
htiming History timing. (Default: disabled)
So, the updated option is:
dispose=mode Set file dispose to: {delete, keep, or keeponerror}.
notime=optype Disable timing of specified operation type.
Valid optype's are: open close read write ioctl fsync msync aiowait
Note: Since fsync() can take awhile if lots of data is being flushed from the
buffer cache, you may wish to disable timing fsync's via: notime=fsync
This alternate IOT seed value can be specified with this new option:
iotseed=value Set the IOT pattern block seed value.
In support of this feature, these enable/disable flags were added:
funique Unique output file. (Default: disabled)
logpid Log process ID. (Default: disabled)
child Child prcess. (Default: disabled)
Shorthand to enable funique and logpid flags.
Note: The maximum processes on Windows is limited to 64.
syslog Log errors to syslog. (Default: disabled)
This feature was added to correlate errors with dt processes.
log[tu]=filename The log file name to write.
t=truncate, u=unique (w/pid)
With unique log files and multiple processes, each process writes to its'
own log file. Like the output file w/multiple procs, the log file has the
process ID (pid) appended to make the name unique.
Since the default is to append to existing log files, the truncate will do the obvious thing, to save one from deleting previous log file. While there was a historic reason for appending my default, I'm reluctant to change this history behaviour that existing scripts may depend on.
Also Note: If a log file is open, when the trigger script is executed, the output is now written to the log file.
Send mail to admin of this page: Robin.Miller@netapp.com
To Robin's home page.
Last Modified: September 18th, 2008
# ./dt version
--> Date: September 15th, 2008, Version: 16.01, Author: Robin T. Miller <--
#
# dt of=/var/tmp/dt.data min=b max=256k incr=var pattern=iot \
passes=3 limit=100m dispose=keep disable=pstats,verbose
Total Statistics:
Output device/file name: /var/tmp/dt.data (device type=regular)
Type of I/O's performed: sequential (forward, rseed=0x246d5b5a)
Data pattern string used: 'IOT Pattern' (blocking is 512 bytes)
Last IOT seed value used: 0x03030303
Total records processed: 4662 with min=512, max=262144, incr=variable
Total bytes transferred: 629145600 (614400.000 Kbytes, 600.000 Mbytes)
Average transfer rates: 39618741 bytes/sec, 38690.176 Kbytes/sec
Number I/O's per second: 293.577
Total passes completed: 3/3
Total errors detected: 0/1
Total elapsed time: 00m15.88s
Total system time: 00m00.74s
Total user time: 00m07.17s
Starting time: Fri Sep 19 16:14:48 2008
Ending time: Fri Sep 19 16:15:03 2008
# dt if=/var/tmp/dt.data min=b max=256k incr=var pattern=iot \
passes=3 limit=100m iotseed=0x03030303 disable=pstats,verbose
Total Statistics:
Input device/file name: /var/tmp/dt.data (device type=regular)
Type of I/O's performed: sequential (forward, rseed=0x246da97c)
Data pattern string used: 'IOT Pattern' (blocking is 512 bytes)
Total records processed: 2376 with min=512, max=262144, incr=variable
Total bytes transferred: 314572800 (307200.000 Kbytes, 300.000 Mbytes)
Average transfer rates: 49539024 bytes/sec, 48377.953 Kbytes/sec
Number I/O's per second: 374.173
Total passes completed: 3/3
Total errors detected: 0/1
Total elapsed time: 00m06.35s
Total system time: 00m00.15s
Total user time: 00m06.20s
Starting time: Fri Sep 19 16:18:14 2008
Ending time: Fri Sep 19 16:18:20 2008
# dt of=/var/tmp/dt.data min=b max=256k incr=var pattern=iot \
limit=100m history=5 enable=hdump,htiming disable=pstats
dt: End of Write pass 0/1, 204800 blocks, 100.000 Mbytes, 759 records, errors 0/1, elapsed 00m03.14s
dt: End of Read pass 1/1, 204800 blocks, 100.000 Mbytes, 759 records, errors 0/1, elapsed 00m02.13s
Total Statistics:
Output device/file name: /var/tmp/dt.data (device type=regular)
Type of I/O's performed: sequential (forward, rseed=0x2469616c)
Data pattern string used: 'IOT Pattern' (blocking is 512 bytes)
Total records processed: 1518 with min=512, max=262144, incr=variable
Total bytes transferred: 209715200 (204800.000 Kbytes, 200.000 Mbytes)
Average transfer rates: 39794156 bytes/sec, 38861.480 Kbytes/sec
Number I/O's per second: 288.046
Total passes completed: 1/1
Total errors detected: 0/1
Total elapsed time: 00m05.27s
Total system time: 00m00.26s
Total user time: 00m02.35s
Starting time: Fri Sep 19 15:31:33 2008
Ending time: Fri Sep 19 15:31:38 2008
dt: Dumping History Data (5 entries):
1221852698.397315 (0.004768) Record #759 - Read 105472 bytes (206 blocks) lba's 204594 - 204799 (pos 104752128)
Offset
000000 00031f32 01042033 02052134 03062235
000016 04072336 05082437 06092538 070a2639
1221852698.392547 (0.002549) Record #758 - Read 240640 bytes (470 blocks) lba's 204124 - 204593 (pos 104511488)
Offset
000000 00031d5c 01041e5d 02051f5e 0306205f
000016 04072160 05082261 06092362 070a2463
1221852698.389998 (0.004830) Record #757 - Read 119808 bytes (234 blocks) lba's 203890 - 204123 (pos 104391680)
Offset
000000 00031c72 01041d73 02051e74 03061f75
000016 04072076 05082177 06092278 070a2379
1221852698.385168 (0.004725) Record #756 - Read 242688 bytes (474 blocks) lba's 203416 - 203889 (pos 104148992)
Offset
000000 00031a98 01041b99 02051c9a 03061d9b
000016 04071e9c 05081f9d 0609209e 070a219f
1221852698.380443 Record #755 - Read 231424 bytes (452 blocks) lba's 202964 - 203415 (pos 103917568)
Offset
000000 000318d4 010419d5 02051ad6 03061bd7
000016 04071cd8 05081dd9 06091eda 070a1fdb
# dt of=dt.data passes=2 pattern=iot bs=64k limit=100m disable=stats dispose=keep
# dt if=dt.data pattern=iot position=50m bs=64k limit=100m disable=stats enable=syslog
dt: Error number 1 occurred on Fri Sep 19 17:51:58 2008
dt: Elapsed time since beginning of pass: 00m00.00s
dt: Elapsed time since beginning of test: 00m00.00s
dt: Data compare error at byte 4 in record number 1
dt: Relative block number where the error occurred is 102400, position 52428804 (offset 4)
dt: Data expected = 0x1, data found = 0x2, byte count = 65536
dt: The correct data starts at address 0x9e4e004 (marked by asterisk '*')
dt: Dumping Pattern Buffer (base = 0x9e4e000, offset = 4, limit = 512 bytes):
Offset
000000 00 90 01 00*01 91 02 01 02 92 03 02 03 93 04 03
000016 04 94 05 04 05 95 06 05 06 96 07 06 07 97 08 07
...
000480 78 08 7a 78 79 09 7b 79 7a 0a 7c 7a 7b 0b 7d 7b
000496 7c 0c 7e 7c 7d 0d 7f 7d 7e 0e 80 7e 7f 0f 81 7f
dt: The incorrect data starts at address 0x9e63004 (marked by asterisk '*')
dt: Dumping Data Buffer (base = 0x9e63000, offset = 4, limit = 512 bytes):
Offset
000000 00 90 01 00*02 92 03 02 04 94 05 04 06 96 07 06
000016 08 98 09 08 0a 9a 0b 0a 0c 9c 0d 0c 0e 9e 0f 0e
...
000480 f0 80 f2 f0 f2 82 f4 f2 f4 84 f6 f4 f6 86 f8 f6
000496 f8 88 fa f8 fa 8a fc fa fc 8c fe fc fe 8e 00 ff
dt: Rereading and verifying record data using Direct I/O...
dt: Seeked to block 102400 (0x19000) at byte position 52428800
dt: Record #1 - Reading 65536 bytes (128 blocks) into buffer 0x9e76000, lba's 102400 - 102527 (pos 52428800)
dt: Reread data matches previous data read, possible write failure!
# tail /var/log/messages
Sep 18 17:26:10 sf49ers02 remote(pam_unix)[1352]: session closed for user rtmiller
Sep 19 15:07:28 sf49ers02 remote(pam_unix)[7538]: session opened for user rtmiller by (uid=0)
Sep 19 15:07:28 sf49ers02 -- rtmiller[7538]: LOGIN ON pts/1 BY rtmiller FROM 10.58.50.23
Sep 19 17:51:58 sf49ers02 dt: (7765) Starting: /u/rtmiller/Tools/dt.d-WIP/linux2.6-x86/dt if=dt.data pattern=iot position=50m bs=64k limit=100m disable=stats enable=syslog
Sep 19 17:51:58 sf49ers02 dt: (7765) Relative block number where the error occurred is 102400, position 52428804 (offset 4)
Sep 19 17:51:58 sf49ers02 dt: (7765) Data compare error at byte 4 in record number 1
Sep 19 17:51:58 sf49ers02 dt: (7765) Data expected = 0x1, data found = 0x2, byte count = 65536
Sep 19 17:51:58 sf49ers02 dt: (7765) Finished: /u/rtmiller/Tools/dt.d-WIP/linux2.6-x86/dt if=dt.data pattern=iot position=50m bs=64k limit=100m disable=stats enable=syslog
#