Re: stack overflow on Sparc64

From: Mikulas Patocka
Date: Fri Jun 20 2008 - 17:14:57 EST




On Fri, 20 Jun 2008, David Miller wrote:

From: Mikulas Patocka <mpatocka@xxxxxxxxxx>
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.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/