[alsa-devel] xhci: Not enough bandwidth for new device state
Hi,
I am getting these messages from a Debian 9.3 system using Linux 4.9.x: [ 547.352746] usb 3-5.2: 3:1: usb_set_interface failed (-28) [ 548.352865] usb 3-5.3: Not enough bandwidth for new device state. [ 548.352868] usb 3-5.3: Not enough bandwidth for altsetting 1
I have connected a 7-Port USB 3.0 Hub to my machine. I have 6 different Headsets and USB Soundcards connected to the HUB.
As soon as I start a C++ application which opens all ALSA devices I get these errors and the USB stopps working correctly.
I think the maximum count of USB sound devices, which behave stable is three or four.
Is this some miscalculation of the Linux kernel regarding the USB bandwidth usage? How I can determine how much bandwidth the USB sound card driver preallocates?
Or are five USB soundcards really too much for an USB 3.0 bus?
Thanks in advance for any advise, best regards Waldemar
P.s.: I sent this message to LKML, but maybe it is more appropriate to ask here.
Hi, Waldemar Brodkorb wrote,
Hi,
I am getting these messages from a Debian 9.3 system using Linux 4.9.x: [ 547.352746] usb 3-5.2: 3:1: usb_set_interface failed (-28) [ 548.352865] usb 3-5.3: Not enough bandwidth for new device state. [ 548.352868] usb 3-5.3: Not enough bandwidth for altsetting 1
I have connected a 7-Port USB 3.0 Hub to my machine. I have 6 different Headsets and USB Soundcards connected to the HUB.
As soon as I start a C++ application which opens all ALSA devices I get these errors and the USB stopps working correctly.
I think the maximum count of USB sound devices, which behave stable is three or four.
Is this some miscalculation of the Linux kernel regarding the USB bandwidth usage? How I can determine how much bandwidth the USB sound card driver preallocates?
Or are five USB soundcards really too much for an USB 3.0 bus?
Adding some more information, which where missing in my first mail.
Attached are dmesg from the machine, lsusb verbose output and aplay -l information.
There is no webcam involved, which usually uses MaxPacketsize of 1024, so why I get the overallocation?
thanks, best regards Waldemar
Waldemar Brodkorb wrote:
[ 547.352746] usb 3-5.2: 3:1: usb_set_interface failed (-28) [ 548.352865] usb 3-5.3: Not enough bandwidth for new device state. [ 548.352868] usb 3-5.3: Not enough bandwidth for altsetting 1
I have connected a 7-Port USB 3.0 Hub to my machine. I have 6 different Headsets and USB Soundcards connected to the HUB.
As soon as I start a C++ application which opens all ALSA devices I get these errors and the USB stopps working correctly.
I think the maximum count of USB sound devices, which behave stable is three or four.
Is this some miscalculation of the Linux kernel regarding the USB bandwidth usage? How I can determine how much bandwidth the USB sound card driver preallocates?
Or are five USB soundcards really too much for an USB 3.0 bus?
There is no webcam involved, which usually uses MaxPacketsize of 1024, so why I get the overallocation?
AFAIK on xHCI controllers, the kernel and the controller's firmware must work together to handle this.
It's possible that a USB 2.0 hub might work better.
Try asking on the linux-usb list.
Regards, Clemens
Hi Clemens, Clemens Ladisch wrote,
Waldemar Brodkorb wrote:
[ 547.352746] usb 3-5.2: 3:1: usb_set_interface failed (-28) [ 548.352865] usb 3-5.3: Not enough bandwidth for new device state. [ 548.352868] usb 3-5.3: Not enough bandwidth for altsetting 1
I have connected a 7-Port USB 3.0 Hub to my machine. I have 6 different Headsets and USB Soundcards connected to the HUB.
As soon as I start a C++ application which opens all ALSA devices I get these errors and the USB stopps working correctly.
I think the maximum count of USB sound devices, which behave stable is three or four.
Is this some miscalculation of the Linux kernel regarding the USB bandwidth usage? How I can determine how much bandwidth the USB sound card driver preallocates?
Or are five USB soundcards really too much for an USB 3.0 bus?
There is no webcam involved, which usually uses MaxPacketsize of 1024, so why I get the overallocation?
AFAIK on xHCI controllers, the kernel and the controller's firmware must work together to handle this.
It's possible that a USB 2.0 hub might work better.
Try asking on the linux-usb list.
Indeed todays tests have shown that just simply disabling xhci in the BIOS of the machines and just using ehci driver works perfectly well in our usecase.
best regards Waldemar
participants (2)
-
Clemens Ladisch
-
Waldemar Brodkorb