USB Harddrive g_vfs_done() Errors
Hans Petter Selasky
hselasky at c2i.net
Mon Dec 10 07:21:22 UTC 2012
On Monday 10 December 2012 00:28:55 robert_cargil at gmx.com wrote:
> I am running 9.1RC1:
>
> FreeBSD system 9.1-RC1 FreeBSD 9.1-RC1 #0 r240745: Thu Sep 20 08:33:01 PDT
> 2012 root at system:/usr/obj/usr/src/sys/GENERIC amd64
>
> on a system with this motherboard:
>
> GIGABYTE GA-Z68X-UD3H-B3 LGA 1155 Intel Z68 HDMI SATA 6Gb/s USB 3.0 ATX
> Intel Motherboard
> http://www.newegg.com/Product/Product.aspx?Item=N82E16813128498
>
> I am randomly gettting g_vfs_done() errors when writing to my 2 gig
> Western Digital USB drives. Reading and writing work up until some point
> that a copy to the drive fails and I start getting an endless stream the
> g_vfs_done() errors. All subsequent writes to the drive immediately fail.
> However, reading from the drive works fine for hours after the write error
> first occured. The system will not shut down cleanly and forces me to hard
> power it off or reset it. Sometimes the drive needs to be repaired by
> booting into Windows 7. I've used the 2 gig drives for over a year in
> Windows 7 on the exact same hardware with not a single problem ever.
Hi,
Windows operating systems and Linux will hide these errors from the user
interface. They silently reset the drive when such errors occur and go on.
Such a reset sequence can be noticed by that the device is not responding for
several hundred milliseconds. There is no reason that USB traffic should stop
at the USB host side, except for a known lost interrupt bug. See the
hw.usb.ehci.lostintrbug sysctl. If this variable is set and you still see
errors, then there is most likely a USB firmware error in your device and not
FreeBSD that makes the so-called USB endpoints on the device side stop
receving data suddenly. You can verify my claims by checking the USB traffic
using usbdump -i usbusX -f Y .
--HPS
More information about the freebsd-usb
mailing list