• Ravi Bangoria's avatar
    perf uretprobe ppc64le: Fix probe location · a1d9972e
    Ravi Bangoria authored
    Perf uretprobe probes on GEP(Global Entry Point) which fails to record
    all function calls via LEP(Local Entry Point). Fix that by probing on LEP.
    
    Objdump:
    
      00000000100005f0 <doit>:
          100005f0:   02 10 40 3c     lis     r2,4098
          100005f4:   00 7f 42 38     addi    r2,r2,32512
          100005f8:   a6 02 08 7c     mflr    r0
          100005fc:   10 00 01 f8     std     r0,16(r1)
          10000600:   f8 ff e1 fb     std     r31,-8(r1)
    
    Before applying patch:
    
      $ cat /sys/kernel/debug/tracing/uprobe_events
        r:probe_uprobe_test/doit /home/ravi/uprobe_test:0x00000000000005f0
    
    After applying patch:
    
      $ cat /sys/kernel/debug/tracing/uprobe_events
        r:probe_uprobe_test/doit /home/ravi/uprobe_test:0x00000000000005f8
    
    This is not the case with kretprobes because the kernel itself finds LEP
    and probes on it.
    Signed-off-by: default avatarRavi Bangoria <ravi.bangoria@linux.vnet.ibm.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Balbir Singh <bsingharora@gmail.com>
    Cc: Masami Hiramatsu <mhiramat@kernel.org>
    Cc: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: http://lkml.kernel.org/r/1475576865-6562-1-git-send-email-ravi.bangoria@linux.vnet.ibm.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    a1d9972e
sym-handling.c 2.99 KB