- The current 2.6.18 x86_64 kernel has changed the IRQ-stack-to-
process-stack linkage, where until now the link value was
a pointer
to the exception frame on the process stack, but has been
changed
to point to a location on the process stack above the exception
frame. Because of that, after displaying the trace
data from the
IRQ stack, "bt" would then display an invalid exception
frame,
which was reported as a "possibly bogus exception frame".
(anderson@redhat.com)
- Also in x86_64 kernels, fix for the "bt" command. When the
backtrace
started on the NMI exception stack, it was displaying the
correct
exception frame data, but was erroneously reporting that
it was a
"possibly bogus exception frame". (anderson@redhat.com)
- And again in x86_64 kernels, fix for the "bt" command. When
making
the transition from the IRQ stack back to the process stack,
when
the IRQ stack entry was made via the relatively new "call_softirq"
entry point. In that case, there is no exception frame
on the
process stack, because it's essentially just a cross-stack
call
from do_softirq(). However, a bogus exception frame
was being
displayed, along with a "possibly bogus exception frame"
message;
and if the RIP value in the truly bogus exception frame
happened
to fall in the user virtual address range, the remainder
of the
process stack trace was not displayed at all. (anderson@redhat.com)
- Fix for 2.6.18-era ia64 DISCONTIGMEM kernels, which would fail
during initialization with the error message: "crash: invalid
(optional) structure member offsets: pglist_data_node_next
or
pglist_data_pgdat_next". (anderson@redhat.com)
- Adapted Olivier Daudel's nifty enhancement to the "struct" command,
which allows the single "struct.member" argument to optionally
be
expressed in a "struct.member[,member,member] format, in
order to
display multiple members of a given structure. This
also applies to
the "union" and "*" commands, as all three functions have
now been
combined into one behind the scenes. Fixed the display
for applying
a minus count, and given that it opened up a the door to
a number of
entry errors, I also added additional error-catching/handling
to avoid
the display of incorrect structure data.
(olivier.daudel@u-paris10.fr, anderson@redhat.com)
- Fixed three sources of potential segmentation violations when
using
the "bt" command when the experimental dwarf CFI unwind
backtrace
facility was turned on. (anderson@redhat.com)
- Added a new machdep_init(POST_VM) call, which is currently only
being
used by the x86_64 architecture; it calls init_unwind_table(),
which
has to be done after vm_init() in order to access the unwind
tables
of kernel modules. (anderson@redhat.com)
Download from: http://people.redhat.com/anderson