-
Notifications
You must be signed in to change notification settings - Fork 5.2k
ttyUSB infinitely URB_BULK in #1692
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Duplicate of raspberrypi/firmware#582 Opening so many devices at once is never going to work due to the way the hardware works. To confirm, can you open one less than the number of devices that makes the system unresponsive, then run the commands in the linked issue? |
Done.
sudo ./usb_test
out: it is sad i exactly reached the maximum of the host channels. Thank you for your explanations. |
pcap from RPI pcap from PC On RPI "URB_BULK in" messages never stop after i run usb_test. |
It's odd that the system becomes completely unresponsive. Endpoints are serviced first-come-first-served in the case where all host channels are busy, so you should get degraded performance not inoperable performance. I'll look at your logs tomorrow. |
The majority of your devices have high speed bulk endpoints. Submitting a transfer to a HS bulk endpoint will tie up a host channel until the bulk endpoint returns enough data to finish the transfer, or a short packet. This could be seconds in the case of a cellular modem waiting for network. There should be a rudimentary QoS mechanism in that permits no more than 7 host channels to be used for bulk data - so your keyboard (an interrupt endpoint) should still work. I will have a look to see why it doesn't. |
Thank you very much! I will try to debug drivers/usb/serial/option.c, drivers/usb/serial/usb_wwan.c to understand how it is working under the hood of linux kernel. |
@P33M Was there any progress on this? |
Even though we limit the maximum number of channels used for non-periodic endpoints to num_channels - 1, this doesn't stop the case where of the available host channels, all rotate through and end up being used to poll endpoints that never return data. Forcibly stopping a host channel to re-use it is likely to drop data on the floor, so this is a hardware limitation that's not going to be worked around in software. |
I experience problems with usb modems
please read this thread https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=163184
i decided to trace usb data with wireshark
please look at pcap file
when i open ttyUSB serial port there is plenty of "URB_BULK in" messages infinitely go to wireshark
The text was updated successfully, but these errors were encountered: