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/