USB Latency difference between RHEL and Fedora
Is there anything that can cause drastic latency differences in USB transfer speeds between RHEL 7.5 (3.10.0-862.14.4.el7.x86_64) and Fedora 26 (4.16.11-100.fc26.x86_64)?
My company physically connects an RS422 device, through RS422 to USB, using the FTDI_SIO driver. These devices send an ASCII string of characters to our software running on the linux machine.
We have a server that we have tested with 3 HDDs, each with a separate OS: RHEL 7.5 (server), RHEL 7.5 (Desktop), Fedora (23).
When our software & RS422 device runs on Fedora, the Latency is approx. 48-51 MS per transaction. When it runs on either RHEL OS, the latency is approx 2267 MS/transaction.
Outside of the OS, all other factors are identical. We are using the same physical server, the same RS422 devices, the same FTDI driver and the same software build to talk with the FTDI.
As of this morning (10/17/18), all Operating Systems are up to date and, and have the latest versions of usbutils, libusb, usbmuxd, usb_Modeswitch and USB-reder packages install.
Logically, it seems there is something different between the RHEL & Fedora builds (USB configuration setting, USB monitoring, etc) thats causing the difference in speed. However, I haven't been able to pin point anything yet.
Responses
Hi Joe - can you post some output from the RHEL system?
First, the output of the command "lsusb". This will provide a list of USB devices and what version of USB that RHEL thinks it's talking to.
Second, are you able to cat /proc/bus/usb/devices ? This provides a great deal of info about what Linux thinks it's seeing on the USB devices.
I won't ask you to post BOTH (from Fedora AND RHEL) here, but I would recommend performing both commands on all the systems and comparing the output.
Finally, I must recommend https://opensourceforu.com/2011/10/usb-drivers-in-linux-1/
It's a pretty spiffy article.
Good luck, post more, let us know how it goes! GroceryBoyJr (aka James Brigman)
BTW: My thinking here is that RHEL might be loading an inappropriate USB driver. The bottom of the page (link I sent to you) has a nice little process for troubleshooting what drivers are getting loaded and used:
•Load the driver using insmod.
•List the loaded modules using lsmod.
•Unload the driver using rmmod.
To test if this is a later kernel/driver change, you could try ELRepo's kernel-ml which is the latest upstream compiled for RHEL.
If that works, there could be some later kernel change we can backport to the earlier RHEL kernel to improve things for you.
If you have a RHEL support entitlement, feel free to log a support case for further investigation too.
Good work! You could try the kernels for 7.3 and 7.4 to narrow down the regression point. The kernels are listed on the release dates page.
Beyond that you'd need a support case for us to try identify the responsible patch and find a solution.
Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.
