Re: 2.5.69 Interrupt Latency

Paul Fulghum (paulkf@microgate.com)
08 May 2003 09:47:09 -0500


On Wed, 2003-05-07 at 17:28, Andrew Morton wrote:
> Paul Fulghum <paulkf@microgate.com> wrote:
> >
> > 2.5.69
> > Latency 100-110usec (5x increase)
> > Spikes from 5-10 milliseconds
> >
> Could be that some random piece of code forgot to reenable interrupts, and
> things stay that way until they get reenabled again by schedule() or
> syscall return.
>
> One way of finding the culprit would be:
>
> my_isr()
> {
> if (this interrupt is more than 5 milliseconds delayed)
> dump_stack();
> }
>
> the stack dump will point up at the place where interrupts finally got
> enabled.

Here is what I got (latency spike in milliseconds):

synclinkscc is a driver I maintain, and that is
where I placed the stack_dump()

Call Trace:
[<cc8bdf1a>] IsrStatusB+0x1fa/0x2c0 [synclinkscc]
[<cc8c5b29>] +0xf4/0x5ab [synclinkscc]
[<cc8c5fe0>] +0x0/0x14c8 [synclinkscc]
[<cc8be575>] mgscc_interrupt+0xa5/0x1b0 [synclinkscc]
[<cc8c5fe0>] +0x0/0x14c8 [synclinkscc]
[<c010d5eb>] handle_IRQ_event+0x4b/0x120
[<c010d89b>] do_IRQ+0x9b/0x110
[<c010bc00>] common_interrupt+0x18/0x20
[<c01255db>] do_softirq+0x6b/0xe0
[<c010d8fb>] do_IRQ+0xfb/0x110
[<c0108f90>] default_idle+0x0/0x40
[<c010bc00>] common_interrupt+0x18/0x20
[<c0108f90>] default_idle+0x0/0x40
[<c0108fc0>] default_idle+0x30/0x40
[<c010905a>] cpu_idle+0x4a/0x60
[<c0105000>] rest_init+0x0/0x60
[<c0456951>] start_kernel+0x181/0x1b0
[<c0456500>] unknown_bootoption+0x0/0x110

-- 
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/