nBeware: False data
corruptions will occur doing random I/O with unique data.
uUnique data means different pattern data in each
block.
nWhy? Random I/O
oftentimes overwrites previously written data block(s).
uResolving this requires maintaining a bitmap of blocks
written to prevent overwrites.
nWorkaround: Don’t use pattern files larger than the device block
size (512, 1K, etc).
n
nExample:
nshaix11# dt of=/var/tmp/dt.data min=b max=256k pf=pattern_all
limit=100m iotype=random dlimit=32 stats=brief
nEnd of Write pass 0/1, 204800 blocks, 100.000 Mbytes, 895
records, errors 0/1, elapsed 00m04.05s
n
ndt: Error number 1 occurred on Thu May 17 10:10:03 2007
ndt: Elapsed time since beginning of pass: 00m00.00s
ndt: Elapsed time since beginning of test: 00m04.05s
ndt: Data compare error at byte 0 in record number 4
ndt: Relative block number where the error occurred is 142297,
position 72856064
ndt: Data expected = 0xa1, data found = 0x9d, byte count =
2048
ndt: The correct data starts at address 0x20006c00 (marked by
asterisk '*')
ndt: Dumping Pattern Buffer (base = 0x20006000, offset = 3072,
limit = 32 bytes):
n
n0x20006bf0 f0 f1 f2 f3
f4 f5 f6 f7 f8 f9 fa fb fc fd fe ff
n0x20006c00 *a1 38 61 a2 1e 0f a4 bd 0a 3d 6d f0 ac c3 ac
b4
n
ndt: The incorrect data starts at address 0x2000c000 (marked by
asterisk '*')
ndt: Dumping Data Buffer (base = 0x2000c000, offset = 0, limit =
32 bytes):
n
n0x2000c000 *9d 9d 86 d2 aa 82 67 b7 d3 a6 13 cd 41 6c 7d
f4
n0x2000c010 36 c7 ba 04
73 9d 86 16 a5 e4 57 a6 02 ed da 71
nEnd of Read pass 1/1, 10 blocks, 0.005 Mbytes, 4 records,
errors 1/1, elapsed 00m00.00s
n/var/tmp/dt.data Totals: 204810 blocks, 100.005 Mbytes, errors
1/1, passes 1/1, elapsed 00m04.05s
nshaix11#