[Bug libdw/22452] Failed to obtain CFI data for a OP_call_frame_CFA when looking for func entrypoc in an s390 kernel module

brueckner at linux dot vnet.ibm.com sourceware-bugzilla@sourceware.org
Mon Nov 20 14:00:00 GMT 2017


--- Comment #14 from H. Brueckner <brueckner at linux dot vnet.ibm.com> ---
Hi Mark, Andreas,

(In reply to Andreas Krebbel from comment #11)
> x86 enables generation of .debug_frame by using:
> KBUILD_CFLAGS += -fno-asynchronous-unwind-tables
> in the kernel Makefile.  This makes GCC to add ".cfi_sections .debug_frame"
> to the assembler output which in turn triggers gas to generate the section.
> I don't see a reason why we couldn't do the same for s390. The .eh_frame
> section aren't used in the kernel.

Thanks for this direction: Emitting the CFI data in the .debug_frame work
nicely. With that change, perf probe and my test program works.  For reference:

./ko-func-call-frame-cfa xts_paes_crypt
I: Looking up xts_paes_crypt@/root/git/linux/arch/s390/crypto/paes_s390.ko
DIE: name=xts_paes_crypt tag=subprogram offset=53957 (0xd2c5)
        low   pc: 10ca8
        high  pc: 10e78
        entry pc: 10ca8
I: Frame Base: Number of locations: 1 (len=1)
I: Frame Base: Location operation 0: call_frame_cfa
E: Could not obtain CFI (eh): no DWARF information
I: CFA operation: 0: bregx

clearly shows a successful call to dwarf_frame_cfa() obtaining the CFI from the
.debug_frame (and not longe from the .eh_frame).

Having explicit ebl hooks would still be nice but I guess will not be the
top-priority item in the TODO list.  I pursue to integrate my change for s390
in the upstream kernel.


You are receiving this mail because:
You are on the CC list for the bug.

More information about the Elfutils-devel mailing list