On Mon, 6 Mar 2017 20:34:10 +0530 "Naveen N. Rao" <naveen.n....@linux.vnet.ibm.com> wrote:
> On 2017/03/04 09:49AM, Masami Hiramatsu wrote: > > On Thu, 2 Mar 2017 23:25:06 +0530 > > "Naveen N. Rao" <naveen.n....@linux.vnet.ibm.com> wrote: > > > > > We indicate support for accepting sym+offset with kretprobes through a > > > line in ftrace README. Parse the same to identify support and choose the > > > appropriate format for kprobe_events. > > > > Could you give us an example of this change here? :) > > for example, comment of commit 613f050d68a8 . > > > > I think the code is OK, but we need actual example of result. > > Sure :) > As an example, without this perf patch, but with the ftrace changes: > > naveen@ubuntu:~/linux/tools/perf$ sudo cat /sys/kernel/debug/tracing/README > | grep kretprobe > place (kretprobe): [<module>:]<symbol>[+<offset>]|<memaddr> > naveen@ubuntu:~/linux/tools/perf$ > naveen@ubuntu:~/linux/tools/perf$ sudo ./perf probe -v do_open%return > probe-definition(0): do_open%return > symbol:do_open file:(null) line:0 offset:0 return:1 lazy:(null) > 0 arguments > Looking at the vmlinux_path (8 entries long) > Using /boot/vmlinux for symbols > Open Debuginfo file: /boot/vmlinux > Try to find probe point from debuginfo. > Matched function: do_open [2d0c7d8] > Probe point found: do_open+0 > Matched function: do_open [35d76b5] > found inline addr: 0xc0000000004ba984 > Failed to find "do_open%return", > because do_open is an inlined function and has no return point. > An error occurred in debuginfo analysis (-22). > Trying to use symbols. > Opening /sys/kernel/debug/tracing//kprobe_events write=1 > Writing event: r:probe/do_open do_open+0 > Writing event: r:probe/do_open_1 do_open+0 > Added new events: > probe:do_open (on do_open%return) > probe:do_open_1 (on do_open%return) > > You can now use it in all perf tools, such as: > > perf record -e probe:do_open_1 -aR sleep 1 > > naveen@ubuntu:~/linux/tools/perf$ sudo cat /sys/kernel/debug/kprobes/list > c000000000041370 k kretprobe_trampoline+0x0 [OPTIMIZED] > c0000000004433d0 r do_open+0x0 [DISABLED] > c0000000004433d0 r do_open+0x0 [DISABLED] > > And after this patch (and the subsequent powerpc patch): > > naveen@ubuntu:~/linux/tools/perf$ sudo ./perf probe -v do_open%return > probe-definition(0): do_open%return > symbol:do_open file:(null) line:0 offset:0 return:1 lazy:(null) > 0 arguments > Looking at the vmlinux_path (8 entries long) > Using /boot/vmlinux for symbols > Open Debuginfo file: /boot/vmlinux > Try to find probe point from debuginfo. > Matched function: do_open [2d0c7d8] > Probe point found: do_open+0 > Matched function: do_open [35d76b5] > found inline addr: 0xc0000000004ba984 > Failed to find "do_open%return", > because do_open is an inlined function and has no return point. > An error occurred in debuginfo analysis (-22). > Trying to use symbols. > Opening /sys/kernel/debug/tracing//README write=0 > Opening /sys/kernel/debug/tracing//kprobe_events write=1 > Writing event: r:probe/do_open _text+4469712 > Writing event: r:probe/do_open_1 _text+4956248 > Added new events: > probe:do_open (on do_open%return) > probe:do_open_1 (on do_open%return) > > You can now use it in all perf tools, such as: > > perf record -e probe:do_open_1 -aR sleep 1 > > naveen@ubuntu:~/linux/tools/perf$ sudo cat /sys/kernel/debug/kprobes/list > c000000000041370 k kretprobe_trampoline+0x0 [OPTIMIZED] > c0000000004433d0 r do_open+0x0 [DISABLED] > c0000000004ba058 r do_open+0x8 [DISABLED] Ok, with this usage example. Acked-by: Masami Hiramatsu <mhira...@kernel.org> Thanks, > > > Thanks, > - Naveen > -- Masami Hiramatsu <mhira...@kernel.org>