On Thu, Jun 28, 2012 at 2:48 PM, maxim naumov
<muxx.mailingli...@gmail.com> wrote:

> I switched to using dt (http://www.scsifaq.org/RMiller_Tools/dt.html)
> for testing. I took the same source tarball and built it on GNU/Linux
> 2.6.38 x86_64 and my FreeBSD 8.3-STABLE.
>
> I run it with the following options:

oops, clicked 'send' inadvertently. so, the options:

./dt of=/dev/da0s1 min=128b max=256k incr=var enable=raw pattern=iot
enable=verify enable=verbose enable=compare enable=Debug flags=direct
iotype=random oncerr=abort

this does writes with subsequent reads of random lengths (between 128b
and 256kb) at random offsets.
on FreeBSD I also specify capacity to save detecting it with seeks.

I run two instances simultaneously, each running on it's own slice on
the Seagate in question. on GNU/Linux it doesn't fail even after hours
of testing (nor it was failing with the filesystem).
on FreeBSD it's usually within an hour or two before it fails with the
following error:

...
dt: Seeked to block 327447715 (0x138474a3) at byte position 149505536
dt: Record #30142 - Reading 168448 bytes (329 blocks) into buffer
0x28253000, lba's 327447715 - 327448043 (pos 149505536)
dt: WARNING: Record #30142, attempted to read 168448 bytes, read only
131072 bytes.
dt: Relative block number where the error occurred is 327447715,
position 149505536

dt: Error number 1 occurred on Thu Jun 28 13:55:51 2012
dt: Elapsed time since beginning of pass: 30m22.82s
dt: Elapsed time since beginning of test: dt: Seeked to block
327447715 (0x138474a3) at byte position 149505536
dt: Closing file '/dev/da0s1', fd = 3...

Total Statistics:
     Output device/file name: /dev/da0s1 (device type=character)
     Type of I/O's performed: random (rseed=0x21746c6, read-after-write)
       Random I/O Parameters: position=0, ralign=0, rlimit=15001551931422278144
    Data pattern string used: 'IOT Pattern' (blocking is 512 bytes)
     Total records processed: 60284 with min=65536, max=262144, incr=variable
     Total bytes transferred: 11363891712 (11097550.500 Kbytes,
10837.452 Mbytes)
      Average transfer rates: 6233808 bytes/sec, 6087.703 Kbytes/sec
     Number I/O's per second: 33.070
      Total passes completed: 0/1
       Total errors detected: 1/1
          Total elapsed time: 30m22.94s
           Total system time: 00m10.46s
             Total user time: 01m14.00s
               Starting time: Thu Jun 28 13:25:28 2012
                 Ending time: Thu Jun 28 13:55:51 2012

dt: Exiting with status code -1...
30m22.82s

I also had it fail on write:

...
dt: Seeked to block 304790691 (0x122abca3) at byte position 1434011136
dt: Record #2219 - Writing 275456 bytes (538 blocks) from buffer
0x30500000, lba's 304790691 - 304791228 (pos 1434011136)
dt: Seeked to block 304790691 (0x122abca3) at byte position 1434011136
dt: Record #2219 - Reading 275456 bytes (538 blocks) into buffer
0x2c400000, lba's 304790691 - 304791228 (pos 1434011136)
dt: Seeked to block 731792088 (0x2b9e42d8) at byte position 1015394304
dt: Record #2220 - Writing 63405056 bytes (123838 blocks) from buffer
0x30500000, lba's 731792088 - 731915925 (pos 1015394304)
dt: Seeked to block 731792088 (0x2b9e42d8) at byte position 1015394304
dt: Record #2220 - Reading 63405056 bytes (123838 blocks) into buffer
0x2c400000, lba's 731792088 - 731915925 (pos 1015394304)
dt: Seeked to block 1366206048 (0x516ea660) at byte position 3712794624
dt: Record #2221 - Writing 53971456 bytes (105413 blocks) from buffer
0x30500000, lba's 1366206048 - 1366311460 (pos 3712794624)
dt: 'write', errno = 5 - Input/output error
dt: Relative block number where the error occurred is 1366295264,
position 3758473216
dt: Seeked to block 1366295265 (0x517002e1) at byte position 3758473728

dt: Error number 1 occurred on Wed Jun 27 20:12:44 2012
dt: Elapsed time since beginning of pass: 1h56m12.26s
dt: Elapsed time since beginning of test: dt: Closing file
'/dev/da0s1', fd = 3...

Total Statistics:
     Output device/file name: /dev/da0s1 (device type=character)
     Type of I/O's performed: random (rseed=0x1907816, read-after-write)
       Random I/O Parameters: position=0, ralign=0, rlimit=8660422083433464320
    Data pattern string used: 'IOT Pattern' (blocking is 512 bytes)
     Total records processed: 4440 with min=65536, max=67108864, incr=variable
     Total bytes transferred: 149591452672 (146085403.000 Kbytes,
142661.526 Mbytes)
      Average transfer rates: 21432616 bytes/sec, 20930.289 Kbytes/sec
     Number I/O's per second: 0.636
      Total passes completed: 0/1
       Total errors detected: 1/1
          Total elapsed time: 1h56m19.61s
           Total system time: 00m51.47s
             Total user time: 26m54.40s
               Starting time: Wed Jun 27 18:15:43 2012
                 Ending time: Wed Jun 27 20:12:52 2012

dt: Exiting with status code -1...
1h56m12.26s

it fails with a single instance too.

the sectors in question are not failing, as tested before and now. the
long smart test doesn't find errors. the Seagate seems to be on the
bus but not responding (powercycle required), however after a few
hours it came back at least once.

I tried the
sysctl hw.usb.ehci.lostintrbug=1
sysctl hw.usb.ehci.iaadbug=1

tweaks (I hope this doesn't require reboot). still no improvement.

any more ideas?

/max
_______________________________________________
freebsd-usb@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-usb
To unsubscribe, send any mail to "freebsd-usb-unsubscr...@freebsd.org"

Reply via email to