Re: usbip port number limits

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 11/14/2017 01:36 PM, Shuah Khan wrote:
> 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!

There appears to be a race condition in

[PATCH] usbip: vhci extension: modifications to vhci driver
0775a9cbc694e8c7276688be3bbd2f386167ab54

between urb enqueue and disconnect. There is another commit
that attempted to fix it - but I don't believe it does:

[PATCH] usbip: fix possibility of dereference by NULLL pointer in
 vhci_hcd.c
d79cda045e3bacb7e754a5324cd3d4ce80708eb1

>>  
>> 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
> 
Hi Yuyang Du,

I am looking at the USB3 support patch and not finding where
USB_SPEED_LOW is handled. Any reason why dropping support for
that?

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



[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux