Re: stack overflow on Sparc64

From: Mikulas Patocka
Date: Fri Jun 20 2008 - 17:26:53 EST


On Fri, 20 Jun 2008, David Miller wrote:

From: Mikulas Patocka <mpatocka@xxxxxxxxxx>
Date: Fri, 20 Jun 2008 16:34:23 -0400 (EDT)

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?

It should be OK, because the minimum stack of a (75 - 19) depth call
chain is under 11K and within safe limits I believe.

I meant if some fancy networking options can eat those 19 frames that I saved and crash again? I use the computer as a workstation, it doesn't have high network load and it doesn't use any features except basic TCP/IP.

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.

I'd rather it spit out a WARN_ON() message and a backtrace.

Otherwise it will be considered a feature and people won't fix
these deep call chains.

If you think that process context+network processing+hardirqs can fit into 75 nested functions... I really have no idea how much the networking takes, given the amount of protocols and features and inability to test them all in one lab, it looks very scary.

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/