[ale] usb drives suck

m-aaron-r aaron at pd.org
Mon Jan 25 20:03:54 EST 2010


On 2010/01/25, at 14:34 , Geoffrey wrote:

> Ed Cashin wrote:
>> The iowait bucket is a subset of the old "idle" bucket.  It just
>> means the CPU doesn't have much to do and you're doing I/O.
>>
>> Specifically, when the last thing that happened before the CPU
>> went idle was to kick off some I/O, the tick gets counted in the
>> iowait bucket.
>>
>> So there should be plenty of CPU for other processes while
>> the system waits for the I/O to finish.  I don't know why the
>> load average (running average count of processes that would
>> like to run but have to wait) would go up unless there were lots
>> of processes that couldn't run until the I/O finished.
>
> I don't get that either.  Right now, load average is 7.5, 6.49, 4.6
> I'm running an rsync of /home to an external usb drive.
>
> I guarantee you, once it finishes, load average will drop below 1.
> -- 
> Until later, Geoffrey

I had always wondered why drives connected (in daisy
chains) on my Firewire (ieee-1394) buses delivered
bi-directional (25mbps) DV video recording and playback
across multiple drives so consistently, but the same external
drive & case connected as a dead end single device via a
dedicated USB 2.0 connection  could not provide a
continuous data stream and caused problems with video
playback. It was especially confusing because, on paper,
the USB 2.0 spec has a slightly higher data rate than 1394a
(though only about half that of 1394b, which I also have on
a couple of machines).

Recently I found out the reason for the discrepancies and the
video playback problems:  What the USB bus specs don't tell
you is that USB data flow is SOFTWARE arbitrated, while
Firewire (ieee-1394) buses are HARDWARE arbitrated.

When the CPU is being heavily pressed into service decoding
video streams and delivering frame accurate video and audio
sync, I frequently see cases where the added interruptions of
arbitrating the video data coming from USB bus will disrupt the
media flow.

I think the CPU load increases you are seeing when transferring
large files are probably the result of software based USB bus
arbitration making demands on the processor.

peace
aaron



More information about the Ale mailing list