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