public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: He Kuang <hekuang@zoho.com>
Cc: He Kuang <hekuang@huawei.com>,
	masami.hiramatsu.pt@hitachi.com, a.p.zijlstra@chello.nl,
	mingo@redhat.com, namhyung@kernel.org, wangnan0@huawei.com,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH 1/3] perf probe: Set retprobe flag when probe in address-based alternative mode
Date: Mon, 13 Apr 2015 13:23:44 -0300	[thread overview]
Message-ID: <20150413162344.GL3200@kernel.org> (raw)
In-Reply-To: <552BDF60.4040906@zoho.com>

Em Mon, Apr 13, 2015 at 11:23:12PM +0800, He Kuang escreveu:
> 
> 
> On 04/13/2015 10:39 PM, Arnaldo Carvalho de Melo wrote:
> >Em Mon, Apr 13, 2015 at 07:41:28PM +0800, He Kuang escreveu:
> >>Perf probe misses to set retprobe flag back when falling back to
> >>address-based alternative mode.
> >
> >And when is that happens, can you explain? Because I tried to follow your
> >instructions, but in my case it worked in the same way before and after your
> >patch.
> >
> >Can you please provide more context for reviewing your patch?
> >
> 
> More details:
> 
>   [root]# perf probe -v -k vmlinux --add='sys_write%return'
>   probe-definition(0): sys_write%return
>   symbol:sys_write file:(null) line:0 offset:0 return:1 lazy:(null)
>   0 arguments
>   Use vmlinux: vmlinux
>   map_groups__set_modules_path_dir: cannot open /lib/modules/4.0.0-rc6+ dir
>   Problems setting modules path maps, continuing anyway...
>   Using vmlinux for symbols
> 
>   Open Debuginfo file: vmlinux
>   >>>==========================
> 
>   Try to find probe point from debuginfo.
>   Symbol sys_write address found : ffffffff811a8cf0
>   Probe point found: SyS_write+0
>   Found 1 probe_trace_events.
>   Opening /sys/kernel/debug/tracing/kprobe_events write=1
>   Added new event:
>   Writing event: p:probe/sys_write _stext+1739560
>     probe:sys_write      (on sys_write%return)
> 
>   You can now use it in all perf tools, such as:
> 
>           perf record -e probe:sys_write -aR sleep 1
> 
>   [root@buildroot tmp]# cat /sys/kernel/debug/tracing/kprobe_events
>   p:probe/sys_write _stext+1739560
> 
> 
> The line I marked is different from your result, which is:
>   """Could not open debuginfo. Try to use symbols."""
> 
> 
> When perf probe searched in debuginfo and failed, it tried with alternative,
> in function get_alternative_probe_event():
> 
>         memcpy(tmp, &pev->point, sizeof(*tmp));
> 	memset(&pev->point, 0, sizeof(pev->point));
> 
> In this case, it drops the retprobe flag and forgets to set it back in
> find_alternative_probe_point(), so the problem occurred.

Thanks for the additional information! I will add it to the commit log.

I'm still not being able to reproduce your results, but this time was
because I tried using those separate .dwo debuginfo files, to check if
'perf' would support it already because elfutils would somehow hide that
from us, but that doesn't seem to be the case:

[root@ssdandy ~]# perf probe -v --add='sys_write%return'
probe-definition(0): sys_write%return
symbol:sys_write file:(null) line:0 offset:0 return:1 lazy:(null)
0 arguments
Looking at the vmlinux_path (7 entries long)
Using /lib/modules/4.0.0-rc6+/build/vmlinux for symbols
Open Debuginfo file: /lib/modules/4.0.0-rc6+/build/vmlinux
Try to find probe point from debuginfo.
Symbol sys_write address found : ffffffff811e5f10
Failed to find scope of probe point.
An error occurred in debuginfo analysis (-2).
  Error: Failed to add events. Reason: No such file or directory (Code: -2)
[root@ssdandy ~]# cat /sys/kernel/debug/tracing/kprobe_events
[root@ssdandy ~]#

[root@ssdandy linux]# grep CONFIG_DEBUG_INFO ../build/v4.0.0-rc6+/.config
CONFIG_DEBUG_INFO=y
# CONFIG_DEBUG_INFO_REDUCED is not set
CONFIG_DEBUG_INFO_SPLIT=y
# CONFIG_DEBUG_INFO_DWARF4 is not set
[root@ssdandy linux]# 

Masami, this is about using CONFIG_DEBUG_INFO_SPLIT=y, that eventually we
should support, for now I will disable it and test again,

- Arnaldo

  reply	other threads:[~2015-04-13 16:23 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-04-13 11:41 [PATCH 1/3] perf probe: Set retprobe flag when probe in address-based alternative mode He Kuang
2015-04-13 11:41 ` [PATCH 2/3] perf probe: Make --source avaiable when probe with lazy_line He Kuang
2015-04-13 15:41   ` Masami Hiramatsu
2015-04-13 16:05     ` Arnaldo Carvalho de Melo
2015-04-13 20:56   ` Arnaldo Carvalho de Melo
2015-04-13 20:57     ` Arnaldo Carvalho de Melo
2015-04-13 21:00       ` Arnaldo Carvalho de Melo
2015-04-13 11:41 ` [PATCH 3/3] perf probe: Fix segfault when probe with lazy_line to file He Kuang
2015-04-13 16:03   ` Masami Hiramatsu
2015-04-14 12:18   ` [tip:perf/urgent] " tip-bot for He Kuang
2015-04-13 14:39 ` [PATCH 1/3] perf probe: Set retprobe flag when probe in address-based alternative mode Arnaldo Carvalho de Melo
2015-04-13 14:42   ` Arnaldo Carvalho de Melo
2015-04-13 15:38     ` He Kuang
2015-04-13 20:42       ` Arnaldo Carvalho de Melo
2015-04-13 15:23   ` He Kuang
2015-04-13 16:23     ` Arnaldo Carvalho de Melo [this message]
2015-04-13 15:42 ` Masami Hiramatsu
2015-04-13 16:05   ` Arnaldo Carvalho de Melo
2015-04-14 12:17 ` [tip:perf/urgent] " tip-bot for He Kuang

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20150413162344.GL3200@kernel.org \
    --to=acme@kernel.org \
    --cc=a.p.zijlstra@chello.nl \
    --cc=hekuang@huawei.com \
    --cc=hekuang@zoho.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=masami.hiramatsu.pt@hitachi.com \
    --cc=mingo@redhat.com \
    --cc=namhyung@kernel.org \
    --cc=wangnan0@huawei.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox