On Thu, 1 Sep 2005, Andy Stewart wrote:

> After further experimentation, I'm no longer convinced that anything is
> faster on my Opteron vs. the laptop.  I was using Konqueror to drag-drop
> files to the MP3 player, and was gauging the speed based on the
> Konqueror progress window.  After many experiments, the time to copy a
> large file appeared to approach zero (clearly impossible).  I suspect
> some sort of caching effect since a 'sync' command would typically take
> several minutes to return to the command prompt.
> 
> This leads me to ask if there is an application similar to iptraf that
> can show USB traffic details.

How about hdparm for data transfer timings?  Or even something as simple 
as:

        time sh -c 'dd ... ; umount /dev/sda1'

For USB traffic details there is the usbmon facility available in the 
kernel, described in Documentation/usb/usbmon.txt.


> >>Now, I can't reliably access the G3 (or my Epson scanner) when it is
> >>plugged into the EHCI port, but that is the subject of a future thread.
> > 
> > What do you mean by "the EHCI port"?  Remember, on a high-speed system 
> > each port is generally connected to two types of controller: the EHCI 
> > controller and a companion full/low-speed UHCI or OHCI controller.  That's 
> > how your motherboard is set up.
> > 
> 
> While doing these experiments, I was using the 'usbview' GUI.  In my
> case, usbview lists 1 EHCI controller, 3 UHCI controllers, and 1 OHCI
> controller.

The OHCI controller is your add-on card, so we can ignore it.  The other 
controllers are on the motherboard.

> I have 6 physical USB connectors on my system.  Usbview lists the device
> underneath the controller to which it is connected.  There are only 2
> connectors on my system where devices show up as being connected to the
> EHCI host controller (I called those EHCI ports).  If I plug a USB 2.0
> device into an "EHCI port", I expect to see USB 2.0 speeds when
> accessing that device (taking device limits into account).

All 6 ports are connected to the EHCI controller, and each UHCI controller
is connected to 2 of the ports.  So all your motherboard ports are both
"EHCI" and "UHCI".  Try plugging a non-high-speed device into one of those 
so-called "EHCI" ports and you'll see what I mean.  Also check out the 
"MaxCh" (Max-Children) field in the T: line of /proc/bus/usb/devices for 
each controller.  You'll see that each UHCI controller can have 2 children 
while the EHCI controller can have 6.

You need to get over your confusion between USB 2.0 and a device's speed.  
USB 1.1 defines two speeds: low (1.5 Mb/s) and full (12 Mb/s).  USB 2.0
defines three speeds: low, full, and high (480 Mb/s).  A USB 2.0 device is
free to use whichever speed it wants.  (Except hubs; a USB 2.0 hub _must_
run at high speed if the upstream port is capable of supporting it.)

What this means is that plugging a USB 2.0 device into one of your
motherboard ports guarantees nothing about the speed.  But if you plug a
high-speed-capable device into any of those ports, it should run at high
speed.  EXCEPT that in many computers, some of the internal wiring
(particularly the cables that lead from the motherboard to the ports at
the front of the case) is not good quality and is too noisy for use at
high speed.  Try to do it and you'll encounter many errors and eventual 
failure.

> My scanner and MP3 player support USB 2.0, and this fact is recognized
> by usbview when I click on each device when it is connected to the EHCI
> host controller.  However, what I have noticed is that neither my
> scanner nor my MP3 player work reliably when plugged into the EHCI host
> controller.  Small data transfers work OK, but large ones (perhaps > 5
> MB) return errors, after which the device is inaccessible until
> unplugged and plugged in again (not power cycled, but dis/reconnected to
> USB).

In your case, it could be that _all_ the wiring is somewhat noisy.  You 
might try using the 2.6.13 kernel; it has improved error recovery in 
usb-storage.

> These devices work great when plugged into either the OHCI or UHCI
> controller.  Why might this be?  What can I do to gather more useful
> debug information?

Slower transfers are more resilient against noise than fast ones.  If 
noise is indeed the culprit, there's not much you can do about it -- 
improve the computer's internal wiring perhaps.  Or you could replace your 
PCI USB card with one that has an EHCI controller; it ought to work 
better than the one on the motherboard.

Alan Stern



-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices
Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
_______________________________________________
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