Hey Alan,

Unfortunately I haven't had any luck fixing this timing issue, so I've
returned to seek wisdom and guidance.  I've tried:

        -capping the average transfer speed in my driver
        -looking for similar behaviour in the Windows driver

Everything I've observed* suggests (to me) a lurking race condition.
There's only two places it could be lurking:

        -my driver
        -the uhci host driver

Since the linux-usb implementation is 100% bug-free, my code is the
bug's likely home.  Should I be holding any locks when I call
usb_control_msg() or usb_bulk_msg()?

any insight would be appreciated; thanks in advance,

Geoff

* Just to recap: this bug happens when my system is heavily loaded
  with lots of disk activity.  (Ie, lots of hardware and software
  interrupts.) Also, the only tester that reported the same problem was
  using a dual AMD64.  (Sounds ripe for race conditions.)

On Wed, Oct 06, 2004 at 11:26:57AM -0400, Alan Stern wrote:
> >     1) isn't "please wait, I'm not ready yet" built-into the USB
> >     protocol?  (So shouldn't it be transparent to me?)
> It _is_ in the protocol, but that doesn't mean the device supports the 
> protocol correctly!

*sigh*  Duly noted.

> >     2) why isn't this happening when the system is lightly loaded or
> >     when the device is connected to an alternative controller?  (As
> >     I understand it, the ohcl controllers are slightly faster than
> >     the uhcl ones.)
> 
> I really don't know.  And by the way, it's OHCI and UHCI, not OHCL and 
> UHCL.  The acronyms stand for "Open Host Controller Interface" and 
> "Universal Host Controller Interface".
> 
> I can't imagine any way the UHCI controller would give you a -EPIPE 
> without actually receiving a STALL from the device.  Unless the controller 
> itself was malfunctioning...

I traced the -EPIPE to uhci_result_control(), line 2582 of uhci-hcd.c..
which looks like it did indeed come from the hardware.  (Assuming no
synchro problems.)

> It also looks like the OHCI controller is significantly slower than the 
> UHCI controller, which is not what one would expect.

I was a bit confused by that myself.  The UHCI is built-in to the
motherboard where the OHCI is on a separate PCI card.  I never would
suspect the PCI bus of being a bottleneck.. but stranger things have
happened.



-------------------------------------------------------
This SF.Net email is sponsored by:
Sybase ASE Linux Express Edition - download now for FREE
LinuxWorld Reader's Choice Award Winner for best database on Linux.
http://ads.osdn.com/?ad_id=5588&alloc_id=12065&op=click
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to