On Thu, 31 Mar 2005, kus Kusche Klaus wrote: > > The latencies are almost certainly caused by the USB host controller > > driver. I'm planning improvements to uhci-hcd which should > > help reduce > > the latency, but it will still be on the large side. And I > > won't have > > time to write the changes to the driver for several months. > > Any numbers about the expected "large side"? > We would need <30 microseconds irq latency, > and <<1 milliseconds rt application latency.
It's pretty hard to say, considering that: (1) None of the code has been written yet; (2) It's impossible to say how big a difference new code will make just by reading it -- you have to actually test it; and (3) I don't have any hardware suitable for testing latencies. The biggest advantage would come from using a bottom-half handler to do most of the work. Right now the uhci-hcd driver does everything in its interrupt handler. This would certainly help IRQ latency; it might not affect application latency very much. I'll try adding a bottom half in my next series of patches. Maybe it will be ready in time to appear in the -mm kernels before 2.6.12-final is released. > > The best solution is to stop using uhci-hcd. Get a PCI card > > with an OHCI > > or EHCI (high-speed) controller. They do much more work in hardware, > > reducing the amount of time the driver needs to spend with interrupts > > disabled. > > The hardware is invariable. It is an embedded system with no PCI slots. > > And it seems to be possible with UHCI, > because vxWorks allows USB stick transfers in operation without > missing latency requirements. > > I do not require rt on the USB, it may block its own irq as long as > it likes, but it should not affect other irqs. We'll see what happens with the upcoming changes. Maybe you'll be able to test them for me? Alan Stern - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/