Messages in this thread | | | Date | Fri, 20 Jun 2008 17:14:41 -0400 (EDT) | From | Mikulas Patocka <> | Subject | Re: stack overflow on Sparc64 |
| |
On Fri, 20 Jun 2008, David Miller wrote:
> From: Mikulas Patocka <mpatocka@redhat.com> > Date: Fri, 20 Jun 2008 11:47:12 -0400 (EDT) > >> I took another few traces (to track the whole stack content) and there is >> another problem: nested interrupts. Does Sparc64 limit them somehow? > > Two levels should be the deepest you will ever see, and this is > equivalent to what you get on other platforms.
Are you sure? What about this: ide-io.c:ide_intr if (drive->unmask) local_irq_enable_in_hardirq();
or this: kernel/irq/handle.c:handle_IRQ_event if (!(action->flags & IRQF_DISABLED)) local_irq_enable_in_hardirq();
--- how is number of nested interrupts here supposed to be limited?
If these things are not limited, you get at most as many nested handlers as there are hardware interrupts, which means crash.
Mikulas
> That path occurs when softirq processing re-enabled HW interrupts when > returning from the top-level interrupt.
| |