On Mon, 4 Nov 2013, Cliff Brake wrote: > On Mon, Nov 4, 2013 at 11:51 AM, Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> wrote: > > On Mon, 4 Nov 2013, Cliff Brake wrote: > > >> We have the same system running on a older PXA270 version of the > >> product (vs the current TI DM3730). It has an older OHCI 12Mbit USB > >> host controller (vs the current TI EHCI controller). We have _not_ > >> experienced these types of latencies with the older PXA270 product. > >> This may be another indication the problem lies in the TI EHCI > >> controller driver, but its odd we have not seen any issues with other > >> peripherals. > > > > More likely it's an indication that you aren't transferring such large > > amounts of data with the older host. The trace shows very clearly that > > the lion's share of the overhead was not in the EHCI controller driver; > > it was in the HID processing. > > I did comparison function traces with the PXA270 and DM3730 system, > and the big difference is the older (gen1) system is only using 64 > byte packets, where the newer one is using ~700 byte packets. See: > > http://bec-systems.com/usb-trace-gen1_filtered.txt > http://bec-systems.com/usb-trace-gen2_filtered.txt > > I assume interrupts are disabled during both ohci_irq() and ehci_irq(). Currently they are. This will change somewhat in the not-too-distant future. > Short term we'll try to force 64-byte packets on the EHCI system. > Long term it would be nice if this work did not happen in a irq > handler, although this is clearly an abuse of the HID protocol. You might be better off writing a special-purpose userspace driver, using libusb, instead of relying on the HID driver. That would allow you to handle your data more efficiently, and with interrupts enabled. Alan Stern -- 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