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 block data.
uResolving this requires maintaining a bitmap of blocks written to avoid
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#