Alan

>I am curious also.  It should never happen.

Earlier you indicated that there is a 30 second timer in scsi module. Can  this 
timer play any role here ? Pardon me if this sounds a silly question as don't 
know about scsi.

>The usb-storage driver pauses for 6 seconds to give the device time to 
>settle after being reset.

Ok. I now understand the reason for 6 second delay on the wire.

>A bug in the driver or an error in the controller hardware.  You said
>earlier that you ported the 2.6.12 driver to a MIPS SOC machine.  Maybe
>your port has a bug or maybe the Synopsys USB 2.0 controller has an
>erratum.

Yes, I ported the 2.6.12 driver to MIPS SOC. The USB host controller is not 
interfaced to PCI bus and therefore i used the notion of platform device to 
port the driver. The porting involved writing code for platform devices and 
that about it. Nevertheless, I will double check the ported code and erratum 
for Synopsys USB 2.0 controller.

Regards
Vivek

-----Original Message-----
From: Alan Stern [mailto:[EMAIL PROTECTED]
Sent: Saturday, June 03, 2006 9:34 AM
To: Vivek Dharmadhikari
Cc: David Brownell; USB development list
Subject: RE: [linux-usb-devel] Usb hangs during small and large file
transfer


On Fri, 2 Jun 2006, Vivek Dharmadhikari wrote:

> Alan
> 
> >The problem is more likely to be in your device than in the kernel. 
> 
> You are proabably right here. I used Catalyst USB analyzer to cross
> check the results of usbmon log. USB analyzer indicated many hot spots
> of 30 seconds and 6 seconds which are in aggrement with usbmon log.
> 
> >The 30-second jump occurs because the device has crashed and isn't sending 
> >any response.  The kernel waits for 30 seconds before aborting the 
> >command.  The 6-second jump is probably part of the device-reset sequence.
> 
> However the 30 seconds delay was not due to device crash but rather due
> to NYET handshake packet from device. The 6 second jump occurs after
> Class type request. The sequence on the bus is like below int the order
> given below
> 
> Host send OUT transcation with 31 Bytes
> Device reponds with NYET.
> 30 seconds IDLE time on bus.
> Host send Class type request and device ack it.
> 6 seconds IDLE time on bus.
> Host send Clear endpoint feature request for in endpoint and device responds 
> it.
> Host send Clear endpoint feature request for out endpoint and device responds 
> it.
> 10 seconds IDLE time on bus.
> 
> The above sequence gets repeated few times during the copy operation to
> USB hard disk and copy operation take long time to finish.

Aha!  It's a good thing you had the Catalyst.  This does look like a bug
in the host controller driver, or maybe an erratum in the controller
itself.

> I used USB 2.0 hard disk from Iomega,acomdata and 2.0 flash driver from
> Sandisk for the experiments and i saw similar patterns with each one of
> them.
> 
> I am curious to know condition under which the host will observe silence
> for 30 seconds. I ask because the analyzer shows that many a
> times,device responded with NYET and host then initiated PING
> transactions immediately(after few milliseonds) after NYET which is ok.

I am curious also.  It should never happen.

> Similarly why the host obeserve silence for 6 seconds after sending
> class type request ?

The usb-storage driver pauses for 6 seconds to give the device time to 
settle after being reset.

> I don't think the hard disks are bad because they works fine with Windows.

I agree.  The problem is in the host.

> I also repeated the above experiments by attaching the hard disks to 1.0
> hub,there by forcing the hard disks to operate at full speed.I did not
> see idle time greater than 1 seconds and copy operation finished much
> earlier than the devices operating at high speed !. I am baffled by this
> fact. Do you any theory here ?

A bug in the driver or an error in the controller hardware.  You said
earlier that you ported the 2.6.12 driver to a MIPS SOC machine.  Maybe
your port has a bug or maybe the Synopsys USB 2.0 controller has an
erratum.

If there is a bug in the driver, perhaps it has already been fixed in
later versions of the kernel.

Alan Stern


_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to