usb/143294: copying process stops at some time (10 - 50 seconds) from usb disk only nForce motherboards in 8.0-RELEASE/STABLE

Hans Petter Selasky hselasky at c2i.net
Fri Jan 29 08:29:35 UTC 2010


On Friday 29 January 2010 07:30:14 Crazy Alex wrote:
> The following reply was made to PR usb/143294; it has been noted by GNATS.
> 

>  ehci_set_hw_power:
>  ehci_set_hw_power: Async is active
>  ehci_set_hw_power:
>  ehci_set_hw_power: Async is active
>  ehci_set_hw_power:
>  ehci_set_hw_power: Async is active
>  ehci_set_hw_power:
>  ehci_set_hw_power: Async is active
>  ehci_set_hw_power:
>  ehci_set_hw_power: Async is active
>  ehci_set_hw_power:
>  ehci_set_hw_power: Async is active
>  ehci_set_hw_power:
>  ehci_set_hw_power: Async is active
>  ehci_set_hw_power:
>  ehci_set_hw_power: Async is active
>  ehci_timeout: xfer=0xc5d903c8

Hi,

>  Lines "ehci_timeout" appear at the time of stopping copying.

If what you pasted is what is happening, I think that your USB device died. 
Most likely due to a USB software race in the HDD firmware. There are 
significant timing differences between the USB stack in FreeBSD 7.2 and 
FreeBSD 8.x. FreeBSD 8.x is faster than FreeBSD 7.2 with regard to USB.

Could you do a simple HDD test on both systems:

dd if=/dev/da0 of=/dev/null bs=65536 count=1000

However the new USB subsystem allows for nicing transfers:

Edit: src/sys/dev/usb/storage/umass.c and make the modification shown below

        [UMASS_T_BBB_COMMAND] = {
                .type = UE_BULK,
                .endpoint = UE_ADDR_ANY,
                .direction = UE_DIR_OUT,
                .bufsize = sizeof(umass_bbb_cbw_t),
                .callback = &umass_t_bbb_command_callback,
                .timeout = 5000,        /* 5 seconds */
+			 	.interval = 1,			/* ms */
        },

I would also check that the HDD is sufficiently powered. Is the HDD powered 
from a single USB port?

--HPS



More information about the freebsd-usb mailing list