[Crash-utility] [PATCH] crash: Do not use bt -t flag in panic_search()

Dave Anderson anderson at redhat.com
Mon Aug 10 15:05:48 UTC 2015



----- Original Message -----
> On Mon, 3 Aug 2015 13:16:19 -0400 (EDT)
> Dave Anderson <anderson at redhat.com> wrote:
> 
> > 
> > 
> > ----- Original Message -----
> > > On Mon, 03 Aug 2015 12:30:22 -0400
> > > Dave Anderson <anderson at prospeed.net> wrote:
> > > 
> > > > 
> > > >     
> > > > Ah, it must be because of the common user-kernel virtual address space on
> > > > s390x?
> > > 
> > > Yes we have overlapping virtual address ranges for kernel and user space and user
> > > space registers are stored at the start of the kernel stack.
> > > 
> > > But I am not sure, if that is the reason here (have to verify this).
> > > 
> > > Doesn't the -t option check all the stack memory and looks for valid symbol
> > > addresses? So IMO everything found there could be by chance the address
> > > of panic. Why is this no problem on x86?
> > 
> > I'm not sure what you mean.  How could it be there by chance?  Are you talking
> > about a highly unlikely situation where a user-space exception frame at the top
> > of the kernel stack happens to have a register containing a kernel virtual address
> > that's within the panic() function?
> 
> My assumption was that in "print_stack_text_syms()" in the following loop
> everything on the stack is checked for kernel symbols:
> 
>         for (i = (esp - bt->stackbase)/sizeof(ulong);
>              i < LONGS_PER_STACK; i++) {
> 
> Besides of function call return addresses there are local variables on the
> stack. If a variable "by chance" contains an address inside the "panic"
> function, we will incorrectly assume that we have the panic task.
> 
> Is this understanding wrong?
> 
> Michael

No, you are right -- so let's prevent that functionality from ever being called
during the initialization of s390x live dumps.

It sounds like the sample vmcore core was taken by the the firmware since the
system was hung.  Do the standalone facility and zgetdump *both* set the 
live magic word at KVADDR 0?

Dave



 




More information about the Crash-utility mailing list