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]

Enabling dwarf unwinder for ppc64


Hi,

After a couple of fixes and cleanups to the generic unwinder code I have
finally enabled the dwarf unwinder for ppc64. The final commit (d4bcac)
was actually pretty small. So hopefully this means enabling it for other
arches should not be too much work. In particular it is probably very
close to also work for ppc[32], but I didn't have such a setup. I have
only tested in on a 2.6.32 ppc64 kernel with gcc 4.4.6. If people have
other setups and could test it there that would be highly appreciated.

Also it would be good if someone who actually knows powerpc took a look
at runtime/unwind/ppc64.h to double check it looks somewhat sane. The
debug frame register numbering is somewhat strange (instead of using
dwarf register numbers, it is using gcc internal register numbering...).
I added a comment with a pointer to some discussion about the confusion
this causes. We only track the general integer registers, mq, link and
count. But no floating point, vector, or flag registers. This is mostly
what is available through pt_regs inside the kernel anyway. It seems
this is all we need for kernel unwinding, and I hope it is enough for
user space too, but I haven't studied user space ppc unwind tables too
much yet.

It isn't perfect yet, but good enough to make all context.exp
kernel/cross-module backtrace tests work. For kernel unwinding it seems
good. For user space unwinding there are a couple of issues.
Specifically symbol lookup seems broken. We discussed this some time ago
on this list and this is what I am going to look into next, because that
obscures all other issues (32-on-64 doesn't work and vma-vdso tests
failing).

Cheers,

Mark


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