> -----Original Message-----
> From: tclug-list-bounces at mn-linux.org
> [mailto:tclug-list-bounces at mn-linux.org]On Behalf Of Mike Miller
> Sent: Tuesday, July 13, 2010 5:56 PM
> To: TCLUG Mailing List
> Subject: Re: [tclug-list] USB external drive slowness
>
>
> On Tue, 13 Jul 2010, Robert Nesius wrote:
>
> > On Tue, Jul 13, 2010 at 5:19 PM, Mike Miller
> <mbmiller+l at gmail.com> wrote:
> >>
> >> Thus, this...
> >>
> >> External HDD #1  -->  remote machine  -->  External HDD #2
> >>
> >> ...was about twice as fast as this...
> >>
> >> External HDD #1  -->  External HDD #2
> >>
> >> There's something very wrong with a system that works that
> way.  If I had
> >> enough space on my internal HDD, I'd do this and probably get
> even better
> >> results:
> >>
> >> External HDD #1  -->  Internal HDD  -->  External HDD #2
> >>
> >>
> >> Another crazy thing is that it must have been really killing my CPU
> >> because I could hardly do anything else while the drive-to-drive USB
> >> transfer was active, but programs like "ps aux" and "top" (both of
> >> which literally took minutes to launch) seemed to show that almost
> >> nothing was happening.  Why is that?
> >
> > I think this is likely a case of bus-contention.  Especially if the
> > reads and writes were being sent through the same bus/controller.  I've
> > had similar issues when doing things with USB devices.
>
> Maybe I would have better luck if I used a different pair of USB ports.


Random suggestions FWIW:

When I bought some multi-port USB cards, I think I saw some products with
open-source drivers.  All I recall were very cheap.

It should be possible to define a port-to-port transfer on some cards or
perhaps a simple block-to/from-RAM DMA and FIFO controlled transfer about as
fast as 100% of full USB speed.  USB controller chips are suprisingg complex
things: I think I recall reading about some complex block transfer protocols
within the USB 2.0 spec, so a compliant chip might easily be told to stream
from one port to another, using hardware flow-control and internal  error
protection.

Sorry: not gung-ho enough to look this up again (it's a huge formal spec,
and there are many cards and controller chips including some smart
USB-enabled PIC cards, BASIC Stamp, etc).  Possible/likely that some cards
may advertise streaming or block functions as built-in ops!


Chuck