On Thu, 4 Aug 2016 09:50:25 +0800 "Wangnan (F)" <wangn...@huawei.com> wrote:
> > > On 2016/8/4 7:08, Masami Hiramatsu wrote: > > On Wed, 3 Aug 2016 23:45:57 +0900 > > Masami Hiramatsu <mhira...@kernel.org> wrote: > > > >>>> [root@jouet ~]# perf probe sys_epoll_wait > >>>> Failed to find debug information for address ffffffffbd295b50 > >>>> Probe point 'sys_epoll_wait' not found. > >>>> Error: Failed to add events. > >> So, at least I should investigate it. > > FYI, on ubuntu16.04, I can put probes on sys_epoll_wait as below > > > > mhiramat@devnote:~/ksrc/linux/tools/perf$ sudo ./perf probe -vnf > > sys_epoll_wait > > probe-definition(0): sys_epoll_wait > > symbol:sys_epoll_wait file:(null) line:0 offset:0 return:0 lazy:(null) > > 0 arguments > > Looking at the vmlinux_path (8 entries long) > > Using /usr/lib/debug/boot/vmlinux-4.4.0-31-generic for symbols > > Open Debuginfo file: /usr/lib/debug/boot/vmlinux-4.4.0-31-generic > > Try to find probe point from debuginfo. > > Symbol sys_epoll_wait address found : ffffffff81257410 > > Matched function: SyS_epoll_wait > > found inline addr: 0xffffffff81257410 > > Probe point found: SyS_epoll_wait+0 > > found inline addr: 0xffffffff8125756d > > Probe point found: SyS_epoll_pwait+141 > > found inline addr: 0xffffffff81257793 > > Probe point found: compat_SyS_epoll_pwait+147 > > Found 3 probe_trace_events. > > Opening /sys/kernel/debug/tracing//kprobe_events write=1 > > Writing event: p:probe/sys_epoll_wait _text+2454544 > > Writing event: p:probe/sys_epoll_wait_1 _text+2454893 > > Writing event: p:probe/sys_epoll_wait_2 _text+2455443 > > Added new events: > > probe:sys_epoll_wait (on sys_epoll_wait) > > probe:sys_epoll_wait_1 (on sys_epoll_wait) > > probe:sys_epoll_wait_2 (on sys_epoll_wait) > > > > You can now use it in all perf tools, such as: > > > > perf record -e probe:sys_epoll_wait_2 -aR sleep 1 > > > > > Have you checked 'readelf -wi'? I guess you wouldn't find > sys_epoll_wait. Yes, my understandig is that the sys_* functions (alias) are generated by linker, so debuginfo doesn't know about it. As the above log said, perf-probe(and bpf too) tries to find symbol in kallsyms and find the corresponding debuginfo entry(DIE) and find the probe point again in debuginfo. Thank you, -- Masami Hiramatsu <mhira...@kernel.org>