On Fri, Dec 14, 2018 at 09:33:57PM -0800, Marc MERLIN wrote: > Howdy, > > Kernel 4.14, although it's not kernel specific and a known limit. > > I'm having problem supporting device testing on a server because each > device them requires 2 USB ports (one fastboot, one serial console). > > I can't really go past 16 per server, because I hit this: > [ 166.159608] xhci_hcd 0000:05:00.0: Error while assigning device slot ID > [ 166.159613] xhci_hcd 0000:05:00.0: Max number of devices this xHCI host supports is 32. > [ 166.159616] usb 3-1.3-port3: couldn't allocate usb_device > [ 166.160058] xhci_hcd 0000:05:00.0: Error while assigning device slot ID > [ 166.160063] xhci_hcd 0000:05:00.0: Max number of devices this xHCI host supports is 32. > > https://acroname.com/blog/why-cant-i-connect-more-usb-30-devices-my-system > explains how I can save a few IDs by using a USB-2 cable to my USB hubs. > I'm already doing this. > > It also says I can get another USB card, I did this too, so now I have a > 32 device limit (at 2 USB ports per device) instead of 16 > > lspci | grep -i 'usb controller' > 00:14.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB xHCI (rev 05) > 00:1a.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #2 (rev 05) > 00:1d.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #1 (rev 05) > 05:00.0 USB controller: Fresco Logic FL1100 USB 3.0 Host Controller (rev 10) > > But that's still not good enough (I need more) and I can't add a 2nd PCI > card on that server. > > The web page above says > "Add a discrete USB controller to your host: > If you need to add substantially more USB devices to your host, the main > limitation is likely the integrated Intel XHCI USB host controller. > Discrete USB host controllers do not typically have this limitation. > Adding a discrete USB host controller in a PCIe expansion slot is a > great way to expand the total tree and number of devices available." > > How do I know whether a PCI USB card I'm buying is a "discrete USB > controller" as per how it's used in that sentence? If the PCI card has a USB host controller on it. I think almost anyone you buy will be like that. > Or does it just say that basically you're doubling your limit with > another card, which is what I already did, and then you hit the limit > again? Probably, there is a limit on how many devices a USB host controller can handle at once, that's just the way the hardware works. > More generally, any ideas how I can support more USB devices on a single > server when I can't keep adding PCI cards? (I guess PCI cards with > multiple separate USB chips might be a start if they exist). Keep adding PCI cards :) good luck! greg k-h