Re: [2.6 patch] i386: always use 4k/4k stacks

From: Stefan Rompf
Date: Sun Dec 18 2005 - 07:04:02 EST


Am Sonntag 18 Dezember 2005 12:21 schrieb Arjan van de Ven:

> the kernel has a stack overflow detector, which checks at irq entry time
> if the stack is "rather high" (7kb into the stack on a 8kb stack, 3.5kb
> on a 4k stack). When this warning hits there's still runway left (like
> 12.5 percent), but lets say the end becomes in sight. If the stack usage
> would be really tight, this "early warning" detector would be hitting a
> lot of people, right?

Wrong. The probability that an interrupt happens just during the codepath with
highest stack usage is very small. Anyway CONFIG_DEBUG_STACKOVERFLOW is not
enabled in 2.6.14.4 i386 defconfig. Don't know about vendor kernel kernels
though.

I thought more about filling the stack with some arbitrary value on thread
startup and checking how much has been overwritten on a regular basis. Part
of it is alreay there, hidden unter CONFIG_DEBUG_STACK_USAGE. The
verification should just happen timer-controlled, not only on sysrq-whatever.

> (and the "safety net" is a bit of misnomer, since it's not really safe,
> just "statistically different" if the shit hits the fan)

If you can't even guarantee that 8k (or 6k) is enough, how can you vote for 4k
then ;-) Just a little provocation, I don't plan getting too involved into
this dicussion, hell, this is just about a ridiculously small amount of self
contained #ifdef'd code ;-)

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