![]() | ||||||||||
Messages in this thread |
On Mon, 21 Apr 2008 22:44:39 -0500 Eric Sandeen <sandeen@redhat.com> wrote: > Use a canary at the end of the stack to clearly indicate > at oops time whether the stack has ever overflowed. > > This is a very simple implementation with a couple of > drawbacks: > > 1) a thread may legitimately use exactly up to the last > word on the stack > > -- but the chances of doing this and then oopsing later seem slim > > 2) it's possible that the stack usage isn't dense enough > that the canary location could get skipped over > > -- but the worst that happens is that we don't flag the overrun > > With the code in place, an intentionally-bloated stack oops does: > > BUG: unable to handle kernel paging request at ffff8103f84cc680 > IP: [<ffffffff810253df>] update_curr+0x9a/0xa8 > PGD 8063 PUD 0 > Thread overran stack or stack corrupted > Oops: 0000 [1] SMP > CPU 0 I like this but I wonder if it's useful to do this for the irq stacks too; either way Acked-by: Arjan van de Ven <arjan@linux.intel.com> (I'll also add detection of your printk to the kerneloops.org website) -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ | |||||||||
| Last update: 2008-04-22 06:29 [from the cache] ©2003-2008 | ||||||||||