lkml.org 
[lkml]   [2014]   [Dec]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[RFC PATCH 2/8] perf probe powerpc: Fix symbol fixup issues due to ELF type
    Date
    If using the symbol table, symbol addresses are not being fixed up
    properly, resulting in probes being placed at wrong addresses:

    # perf probe do_fork
    Added new event:
    probe:do_fork (on do_fork)

    You can now use it in all perf tools, such as:

    perf record -e probe:do_fork -aR sleep 1

    # cat /sys/kernel/debug/tracing/kprobe_events
    p:probe/do_fork _text+635952
    # printf "%x" 635952
    9b430
    # grep do_fork /boot/System.map
    c0000000000ab430 T .do_fork

    Fix by checking for ELF type ET_DYN used by ppc64 kernels.

    Signed-off-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
    ---
    tools/perf/util/symbol-elf.c | 3 ++-
    1 file changed, 2 insertions(+), 1 deletion(-)

    diff --git a/tools/perf/util/symbol-elf.c b/tools/perf/util/symbol-elf.c
    index 1e23a5b..67e4392 100644
    --- a/tools/perf/util/symbol-elf.c
    +++ b/tools/perf/util/symbol-elf.c
    @@ -629,7 +629,8 @@ int symsrc__init(struct symsrc *ss, struct dso *dso, const char *name,
    NULL) != NULL);
    } else {
    ss->adjust_symbols = ehdr.e_type == ET_EXEC ||
    - ehdr.e_type == ET_REL;
    + ehdr.e_type == ET_REL ||
    + ehdr.e_type == ET_DYN;
    }

    ss->name = strdup(name);
    --
    2.1.3


    \
     
     \ /
      Last update: 2014-12-09 19:21    [W:4.038 / U:0.016 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site