This is the mail archive of the systemtap@sourceware.org mailing list for the systemtap project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

some unwind.c cleanups


Hi,

Since I was looking at enabling the dwarf unwinder on the non-x86
platforms I went through unwind.c and cleaned some stuff up. It should
now be a little faster and use a little less stack in exchange for
allocating a little bit more memory up front. It should hopefully also
be a little easier to reason about (at least it is for me).

Unfortunately while testing this I did get a kernel crash. I have been
unable to repeat it though. This was while running make installcheck
while I was away from the machine and the log file seemed to be
truncated. The only evidence I could find in /var/log/messages just
before the reboot was: hrtimer: interrupt took 30012326 ns

I wouldn't mind if someone would go over the commits to see if there is
something horribly broken in them. But it seems this was a freak
occurrence for now, not related to any of these changes.

Cheers,

Mark

commit d4af357ee2b163b6ba3d7454ae97a52b0124edb8
Author: Mark Wielaard <mjw@redhat.com>
Date:   Thu Jun 30 14:14:14 2011 +0200

    Handle CIE and FDE CFI sequentially in unwind.c instead of recursively.
    
    Another simple unwind.c cleanup to make reasoning about the unwind state
    easier, and to remove another (useless) recursive call. Also fixes CIE/FDE
    comment mixup.

commit f24522b449897a092e5a7e87a805e0bdd3898724
Author: Mark Wielaard <mjw@redhat.com>
Date:   Wed Jun 29 17:20:30 2011 +0200

    Refactor DW_CFA_remember/restore_state handling in unwind.c.
    
    The old way of handling DW_CFA_restore_state involved recursively
    calling processCFI() to replay the whole CFI stream up till the last
    DW_CFA_remember_state instruction. This made it hard to reason about
    the actual unwind state and could lead to processing the CFI stream
    multiple times. In exchange for a little extra memory allocated upfront
    to keep a small stack of register states we now just process all CFI in
    one go. This change also splits out the unwind_reg_state from the
    general unwind_state struct.

commit 4a39153b0bf651731f0b7c7d02dc272585e6e006
Author: Mark Wielaard <mjw@redhat.com>
Date:   Mon Jun 27 15:12:04 2011 +0200

    Slightly improved runtime/unwind.c debug output.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]