[LAU] USB audio interface and a buggy USB controller

Jeremy Jongepier jeremy at autostatic.com
Wed Sep 15 07:59:14 UTC 2010


On 09/14/2010 06:26 PM, Monty Montgomery wrote:
> On Tue, Sep 14, 2010 at 8:29 AM, Jeremy Jongepier <jeremy at autostatic.com> wrote:
>> On 09/14/2010 02:23 PM, Clemens Ladisch wrote:
>>> Jeremy Jongepier wrote:
>>>> cannot submit datapipe for urb 0, error -28: not enough bandwidth
>>>
>>> Is CONFIG_USB_EHCI_TT_NEWSCHED enabled in your kernel's configuration?
>>>
>>> Can you try with or without a hub?
>>>
>>
>> I can't try with a hub, I don't have any.
> 
> The bandwidth has been fragmented by other devices.  USB-1 audio
> devices require large _contiguous_ blocks of bandwidth schedule, and a
> mouse or whatever that has carved its tiny little block out of the
> middle of the bandwidth schedule makes all the bandwidth on either
> side useless to an isochronous device.  Simply unplugging it (or
> whatever caused the scheduling problem) is not enough; the schedule
> remains fragmented, as the linux EHCI driver does not know how to
> reconsolidate fragmented bandwidth chunks.  You have to rmmod EHCI or
> reboot to get a fresh start.
> 
> It's possible you're on a hub and don't know it.  Most machines with
> multiple USB ports are actually using a single controller and a built
> in hub.  Hubs make things *far* worse, as the hub is a dumb puppet
> controlled entirely by the host controller, and Linux's hub scheduling
> algorithm (even the 'new improved' one mentioned above) is rather
> poor.  I wrote a new one years ago that approached theoretical maximum
> efficiency and could rebalance/reconsolidate the schedule, but I
> couldn't keep up with repatching it during the complete free-for-all
> that has been kernel 2.6 (I'd literally spent months of full-time work
> *just* keeping up with the churn) and it was dropped from -mm.
> 
> Monty

Hello Monty,

I've tried with all the ports on the machine but alas, forgot to run
lsusb so I don't know how many USB buses there are available. I use a
real-time kernel with rtirq though and will prioritize USB to see if
that helps.

Best,

Jeremy


More information about the Linux-audio-user mailing list