On 11/14/2017 09:25 AM, Juan Zea wrote: > Hi, > > I've been working on the issue. This is what I found about multi-controller setup: > > The problem comes from the usbip tool trying to connect usb2 devices to usb3 ports, like this: > > - usbip tool asks vhci driver for free port. > - If the first port (usb2) is already occupied, vhci answers with usb3 port (instead of next controller's usb2 port) > - usbip tool tries to connect usb2 device to usb3 port and fails It would be interesting to see how this fails. Can you send me complete dmesg from client and server for this. > - usbip tool asks for the next free port, which is still the same usb3 port. > - Loop the above forever That doesn't sound right. > > the code at tools/usb/usbip/libsrc/vhci_driver.c : > 329 int usbip_vhci_get_free_port(uint32_t speed) > 330 { > 331 for (int i = 0; i < vhci_driver->nports; i++) { > 332 if (speed == USB_SPEED_SUPER && > 333 vhci_driver->idev[i].hub != HUB_SPEED_SUPER) > 334 continue; > 335 > 336 if (vhci_driver->idev[i].status == VDEV_ST_NULL) > 337 return vhci_driver->idev[i].port; > 338 } > 339 > 340 return -1; > 341 } > > prevents usb3 devices connecting to usb2 ports, but not the other way around. Connecting usb2 device to usb3 port should work. It would make sense to prevent usb3 devices connecting to usb2 ports, and not the other way round. > > I've patched this preventing the opposite, and multi-controller starts working the way I think it should: > - usb2 devices connect exclusively to usb2 ports > - The above is also true for usb3 devices and ports > - When there is no compatible port for the device in the present controller, go for the next> > At least, for connecting devices this seems to work, and I can get several usb2 and usb3 connected to the same machine in different orders. > The question is... is this the way it is supposed to work? Unless there is some exception in the usb3 support in the usbip driver that prevent usb2 ports from connecting to > > > Another problem is... some of my test devices don't work. They detonate a kernel BUG line in the vhci controller: > Nov 14 14:35:29 kernel-tester kernel: [ 229.636543] kernel BUG at drivers/usb/usbip/vhci_hcd.c:683! > > This is happening even using the vhci module as it is downloaded from Ubuntu (no intervention on my behalf in this experiment), so it seems they just stopped working some kernels ago. It will be harder to debug that way unless you know which kernel release the Ubuntu module is coming from. What's the kernel release on Ubuntu? > I'm still bisecting the kernel for this, but for now I have filed a bug at bugzilla with the specific device and kernel versions: https://bugzilla.kernel.org/show_bug.cgi?id=197867 Will you be able to send me complete dmesg for this. I see excerpts but not the full dmesg. Also, will you be able to revert the usb3 commit 1c9de5bf428612458427943b724bea51abde520a and see if any of the problems go away. thanks, -- Shuah -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html