Re: 2.5.69 Interrupt Latency

Paul Fulghum (paulkf@microgate.com)
12 May 2003 08:57:42 -0500


On Fri, 2003-05-09 at 16:28, Andrew Morton wrote:

> This code was added to wakeup_hc(). It is called from uhci_irq():
>
> + /* Global resume for 20ms */
> + outw(USBCMD_FGR | USBCMD_EGSM, io_addr + USBCMD);
> + wait_ms(20);
>
> The changelog just says "Minor patch for uhci-hcd.c"
>
> Can you delete the wait_ms() and see if that is our culprit?

This is the culprit.

Removing this line corrects the latency problems on
the server. A 20ms delay seems pretty excessive for an
interrupt handler. I'm not sure what it is supposed to
accomplish, but this seems like something that should
be scheduled to run outside of the ISR.

I must have messed up a test on the laptop that is
also showing latency problems. On the laptop the
problem *is* in both 2.5.68/2.5.69 and *is not*
eliminated by turning off USB. The laptop uses the
ohci driver anyways which is not effected by this patch.
The laptop does not show latency problems on 2.4.20.

So the patch above is definately a problem,
but the problem I am seeing on the laptop
is something unrelated, but part of 2.5.x
(which I will investigate further).

Thanks,
Paul

-- 
Paul Fulghum, paulkf@microgate.com
Microgate Corporation, http://www.microgate.com

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/