Archie wrote: ↑
10 Oct 2019, 03:25
I found a setting that affects the dwc_otg interrupt rate. In the file /boot/cmdline.txt , if it contains this "dwc_fiq_enable=N" the interrupt rate approximately triples.
Right, the driver for the USB host controller (dwc_otg) uses the FIQ (Fast Interrupt) to handle the about 8000 SOF interrupts occurring per second, which improves performance. If you disable this feature or use the dwc2 driver instead of dwc_otg, you'll see more interrupts and higher CPU load. The feature was added to the dwc_otg driver by the Raspberry Pi Foundation, however they only added it to the out-of-tree dwc_otg driver, not the dwc2 driver in the mainline kernel. We use the Foundation's kernel as a basis, hence benefit from the feature as well. Unfortunately the Foundation doesn't test it with realtime kernels, so whenever we upgrade to a newer kernel, we have to debug and fix incompatibilities between dwc_otg and the RT patches.