Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754687AbbDMUnA (ORCPT ); Mon, 13 Apr 2015 16:43:00 -0400 Received: from mail.kernel.org ([198.145.29.136]:34098 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751637AbbDMUm5 (ORCPT ); Mon, 13 Apr 2015 16:42:57 -0400 Date: Mon, 13 Apr 2015 17:42:51 -0300 From: Arnaldo Carvalho de Melo To: He Kuang Cc: He Kuang , 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 Message-ID: <20150413204251.GA14885@kernel.org> References: <1428925290-5623-1-git-send-email-hekuang@huawei.com> <20150413143903.GG3200@kernel.org> <20150413144241.GH3200@kernel.org> <552BE2EB.9020207@zoho.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <552BE2EB.9020207@zoho.com> X-Url: http://acmel.wordpress.com User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 4095 Lines: 97 Em Mon, Apr 13, 2015 at 11:38:19PM +0800, He Kuang escreveu: > Hi, Arnaldo > > On 04/13/2015 10:42 PM, Arnaldo Carvalho de Melo wrote: > >Em Mon, Apr 13, 2015 at 11:39:03AM -0300, Arnaldo Carvalho de Melo escreveu: > >>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. > > > >>Humm, noticed one other problem, but not with your patch, about this message: > > > >>"Could not open debuginfo. Try to use symbols." > > > >>That is really not clear, specially that "try to use symbols" :-) > > > >>[root@ssdandy ~]# ls -la /root/.debug/.build-id/dd/32e51921ede0fd46f034091b7f6a0f2e01ebda > >>lrwxrwxrwx. 1 root root 86 Apr 10 18:02 /root/.debug/.build-id/dd/32e51921ede0fd46f034091b7f6a0f2e01ebda -> ../../home/acme/git/build/v4.0.0-rc6+/vmlinux/dd32e51921ede0fd46f034091b7f6a0f2e01ebda > >>[root@ssdandy ~]# ls -la /root/.debug/.build-id/dd/../../home/acme/git/build/v4.0.0-rc6+/vmlinux/dd32e51921ede0fd46f034091b7f6a0f2e01ebda > >>-rwxr-xr-x. 1 root root 22698661 Apr 10 18:02 /root/.debug/.build-id/dd/../../home/acme/git/build/v4.0.0-rc6+/vmlinux/dd32e51921ede0fd46f034091b7f6a0f2e01ebda > >>[root@ssdandy ~]# ls -la /root/.debug/.build-id/dd/../../home/acme/git/build/v4.0.0-rc6+/vmlinux/dd32e51921ede0fd46f034091b7f6a0f2e01ebda > > > >>I.e. it managed to read the debuginfo, its just that it has no symbols in it :-) > > > >>Anyway, digression ended. > > > >Interesting is that when testing your next patch I see: > > > > [root@ssdandy linux]# perf probe -s ./kernel_src/ --add='fs/super.c;s->s_count=1;' > > The /root/.debug/.build-id/dd/32e51921ede0fd46f034091b7f6a0f2e01ebda file has no debug information. > > Rebuild with CONFIG_DEBUG_INFO=y, or install an appropriate debuginfo package. > > Error: Failed to add events. > > [root@ssdandy linux]# > > > >Much, much clear message about that debuginfo file :-) > > > >But then, to test your [2/3] patch I'll have to figure out how to setup the > >environment so that I can match your results, shouldn't be hard, but would > >save reviewing time if you stated it in the commit log message. > > Sorry for not providing enough information. > > -s ./kernel_src/ > > The kernel_src dir is a kernel source tree path, it can be > anywhere, for test you can only put fs/super.c in it: > > kernel_src/ > -- fs > -- super.c > > -k vmlinux > > This is necessary and should be matched to your running kernel. Normally I don't use this, as 'make install' will set it to a place that the perf symbol code will look, check its build id, see that it matches the what is running, i.e. this will hold true: [root@ssdandy ~]# perf buildid-list --hell 2>&1 | grep -- --kernel -k, --kernel Show current kernel build id [root@ssdandy ~]# perf buildid-list --kernel cd1d2cf9f473d0cac668e3afee32866da4540bd4 [root@ssdandy ~]# [root@ssdandy ~]# perf buildid-list -i /lib/modules/4.0.0-rc6+/build/vmlinux cd1d2cf9f473d0cac668e3afee32866da4540bd4 I.e. no need to explicitely pass '-k vmlinux': [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 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: r:probe/sys_write SyS_write+0 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@ssdandy ~]# - Arnaldo -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/