Re: [3.4-rc3] Thread overran stack, or stack corrupted

From: Linus Torvalds
Date: Tue Apr 17 2012 - 16:21:14 EST


On Tue, Apr 17, 2012 at 10:21 AM, Dave Jones <davej@xxxxxxxxxx> wrote:
> My syscall fuzzer started showing up some cases where it we seem to be
> overrunning the stack.  I added a WARN_ON when the stack is really low,
> to see if there's a deep call trace, but it's not really telling me much ..

You seem to have added the WARN_ON() to check_stack_usage() itself.

That's not very useful, because it uses the *current* stack pointer.
Instead, how about just calling "show_trace()" with the actual lowest
stack pointer at that point? That should show you the stack as it was
when it was at its lowest, and that could actually be useful.

IOW, just something like

show_trace(NULL, NULL, (void *)end_of_stack(p) + lowest_to_date, NULL);

Or something kind of like that. Yes?

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