double fault
Stone, Joshua I
joshua.i.stone@intel.com
Tue Nov 22 03:46:00 GMT 2005
>From: Roland McGrath [mailto:roland@redhat.com]
>
>The stack overflow notion sounds plausible. To investigate
>that angle, one
>thing to try comes to mind off hand. In each probe that might
>be hitting,
>stick some %{ ... %} code to do a "stack getting small" check.
> It can do
>something like:
>
> unsigned left = (unsigned)regs & 0xfff;
> if (left < 256) panic("stack getting close");
>
>That might manage to print out a full oops with backtrace
>details that show
>the cascade of page fault frames or whatever the situation actually is.
>
>
>Thanks,
>Roland
>
I tried the code you gave (using CONTEXT->regs), but I don't understand
how that computes how much stack space is left. Shouldn't it be
CONTEXT->regs->esp? And even then, you can see the two esp's from the
register dumps I gave - the first would have triggered your panic, and
the second wouldn't. Am I missing something?
Anyway, I tried it both ways. It immediately panics, but there's no
oops info. It just says "Kernel panic - not syncing". I added a
dump_stack call, but that all looks innocent.
Is there a way I can get the double-fault to print a full oops, with a
stack trace?
I'm pretty new to kernel-debugging, so sorry if I'm asking simple
questions...
Thanks,
Josh
More information about the Systemtap
mailing list