[Crash-utility] Handle the NT_PRSTATUS lost for the "bt" command

Dave Anderson anderson at redhat.com
Wed Jun 20 14:30:54 UTC 2012



----- Original Message -----

> > That seems to be a bug (?), but it's not particularly important,
> > because for x86 and x86_64, the data in the NT_PRSTATUS notes is
> > only used if the starting point for backtraces if the PC/SP pair
> > cannot be determined otherwise, which is the case virtually all of
> > the time.  So the registers found in the NT_PRSTATUS notes are
> > pretty much useless...
> 
> I seem to be minor bug, if some of cpus are offline while panic,
> can't backtrace the same number of cpus from tail because of returning NULL.
> I think current task's PC/SP can not obtain from thread_struct corectly,
> then NT_PRSTATUS notes need to be stored for them instead.

For the active tasks, the PC/SP starting points can typically be found
by looking at the stack contents.  The NT_PRSTATUS notes are a relatively
recent addition to compressed kdumps, i.e., have only existed since 
header version 4.  Only in very rare circumstances do the x86 and
x86_64 arches need to utilize the registers in the compressed kdump
NT_PRSTATUS notes.  

That being said, I will fix the invalid value that is stored in 
dd->num_prstatus_notes so that diskdump_get_prstatus_percpu()
will work as expected if there are offline cpus.  That function is
currently used only by x86 and x86_64, so there should be no issues
with the other arches.

> Yes I'm going to rework, and thanks for your reviews.
> I'm modifying difficult parts this time, very helpful.
> 
> I'll do more tests before sending reworked PPC only patch.
> I also have to study about kexectools or makedumpfile more about
> how NT_PRSTATUS or others are treated, haven't understood enough.

OK thanks,
  Dave




More information about the Crash-utility mailing list