Re: stack overflow on Sparc64

From: Mikulas Patocka
Date: Fri Jun 20 2008 - 16:47:23 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.

That path occurs when softirq processing re-enabled HW interrupts when
returning from the top-level interrupt.

And what if network softirq happened here? How much stack does it consume?

The whole overflowed stack trace has 75 functions, I was able to get rid of 9 by avoiding bio_endio recursion and 10 by turning simple functions into inlines. --- so is it enough or not enough for possible networking calls?

Maybe a good thing would be to add a check for stack size to __do_softirq and handing the softirq to ksoftirqd if there's not enough space.

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