On Fri, Sep 17, 2010 at 05:21:14PM -0400, Monty Montgomery wrote:
<... massive snippage ...>
Well, actually, if you want working USB, you don't
use Linux.
OK, so, with Firewire going away as an option on many new laptops (and not available at
all on netbooks) what are we supposed to do if we have laptops and need to make music? Run
Windoze? Go get MacBooks?
I've been using Linux on stage and in the studio with a FastTrack Pro USB for 3 years
now. Latency on my systems has been noticeably better than the couple MacBooks running
Live or Reason that I've had a chance to play.
Most notorious
are USB Mice and Cameras. If you must use a
USB Mouse or other USB media device (Camera, MP3 player, etc) plug it
into another port.
This is true, but it's true because the linux scheduler is poor.
Doesn't the Ingo patchset fix this, or mitigate it?
The problem is that audio devices use
'isochronous' transfers, which
means that their transfer blocks are prescheduled and must be
contiguous/uninterrupted. Even if a device only needs 25% of the
available bandwidth, when Linux schedules a mouse to sprinkle
'interrupt heads' throughout a schedule such that there no contiguous
blocks bigger than 10% of the schedule, you've lost even if the mouse
is idle and using no bandwidth. You get the dreaded error -28. Also,
there are just a ton of scheduler bugs.
Interesting, thanks for explaining. I've gotten those -28 errors with my Sprint
wireless USB card in combination with USB external drives and USB flash drives, and
wondered WTF was up. Haven't had any such errors with audio-- probably because I
unplug and turn off everything except my keyboard controller and audio interface whenever
I'm working.
All that said, I'd be very happy to use a forked version of the Linux kernel that has
all this USB and scheduler stuff fixed and cleaned up for better audio support, and is
isolated from the mainline churn. if the mainline maintainers don't want it, then so
what. I'd love to have a patch for USB fixen which could be compatible with whatever
Ingo patches are available for whatever kernel it was forked off of. It's the kind of
thing I'd only need to change or update once every several years anyway.
-ken