All of lore.kernel.org
 help / color / mirror / Atom feed
From: Akihiro Nagai <akihiro.nagai.hw@hitachi.com>
To: David Ahern <dsahern@gmail.com>
Cc: Arnaldo Carvalho de Melo <acme@infradead.org>,
	Ingo Molnar <mingo@elte.hu>,
	Peter Zijlstra <peterz@infradead.org>,
	Frederic Weisbecker <fweisbec@gmail.com>,
	linux-kernel@vger.kernel.org,
	Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>,
	yrl.pp-manager.tt@hitachi.com, Paul Mackerras <paulus@samba.org>
Subject: Re: [PATCH -tip v2 3/6] perf script: resolve DSOs and symbols for user-space
Date: Thu, 21 Jul 2011 18:36:47 +0900	[thread overview]
Message-ID: <4E27F32F.4020606@hitachi.com> (raw)
In-Reply-To: <4E230BDA.5020305@gmail.com>

(2011/07/18 1:20), David Ahern wrote:
> On 07/17/2011 03:30 AM, Akihiro Nagai wrote:
>> Resolve user-space DSOs and symbols.
>> Latest perf-script can resolve DSOs and symbols for only kernel
>> and kernel modules. This patch resolves them for other
>> executable binaries.
>
> The description is a bit misleading. perf script does resolve symbols
> for userspace. e.g., the example in the bug fix I submitted in May:
> https://lkml.org/lkml/2011/5/30/223
>
> Do you look into why the cpumode setting is not working that you have to
> try specific settings?
Indeed, perf already can resolve user-space symbols and DSOs if cpumode has
the flag PERF_RECORD_MISC_USER. I found this change is incorrect.
To solve this, I'd like to set both flags PERF_RECORD_MISC_KERNEL and USER
to BTS records, because BTS traces both kernel and user space while it
generates interrupts.

And also, I think there is the probrem in thread__find_addr_map().
When this function is called with cpumode that is set (PERF_RECORD_MISC_KERNEL | USER),
this function processes only PERF_RECORD_MISC_KERNEL. So, I'd like to fix it too.

Thank you.
>
> David
>
>
>>
>> # perf script -f ip,addr,sym,dso
>> 3f03e016b0 ffffffff814675d2 irq_return ([kernel.kallsyms])
>> 3f03e016b0 ffffffff814675d2 irq_return ([kernel.kallsyms])
>> 3f03e04b80       3f03e016b3 _start (/lib64/ld-2.14.so)
>> 3f03e04b80 ffffffff814675d2 irq_return ([kernel.kallsyms])
>> 3f03e04ba6 ffffffff814675d2 irq_return ([kernel.kallsyms])
>> 3f03e04bad ffffffff814675d2 irq_return ([kernel.kallsyms])
>> 3f03e04c1d       3f03e04bfb _dl_start (/lib64/ld-2.14.so)
>> 3f03e04c00       3f03e04c21 _dl_start (/lib64/ld-2.14.so)
>> 3f03e04c00       3f03e04c21 _dl_start (/lib64/ld-2.14.so)
>> [snip]
>>
>> Signed-off-by: Akihiro Nagai<akihiro.nagai.hw@hitachi.com>
>> Cc: Peter Zijlstra<peterz@infradead.org>
>> Cc: Frederic Weisbecker<fweisbec@gmail.com>
>> Cc: Paul Mackerras<paulus@samba.org>
>> Cc: Ingo Molnar<mingo@elte.hu>
>> Cc: Arnaldo Carvalho de Melo<acme@infradead.org>
>> Cc: David Ahern<dsahern@gmail.com>
>> Cc: Masami Hiramatsu<masami.hiramatsu.pt@hitachi.com>
>> ---
>>
>>   tools/perf/builtin-script.c |    4 ++++
>>   tools/perf/util/event.c     |    5 +++++
>>   2 files changed, 9 insertions(+), 0 deletions(-)
>>
>> diff --git a/tools/perf/builtin-script.c b/tools/perf/builtin-script.c
>> index b3e0951..2356198 100644
>> --- a/tools/perf/builtin-script.c
>> +++ b/tools/perf/builtin-script.c
>> @@ -328,6 +328,10 @@ static void print_sample_addr(union perf_event *event,
>>
>>   	thread__find_addr_map(thread, session, cpumode, MAP__FUNCTION,
>>   			      event->ip.pid, sample->addr,&al);
>> +	/* try to resolve for user space */
>> +	if (!al.map)
>> +		thread__find_addr_map(thread, session, PERF_RECORD_MISC_USER,
>> +			MAP__FUNCTION, event->ip.pid, sample->addr,&al);
>>   	if (!al.map)
>>   		thread__find_addr_map(thread, session, cpumode, MAP__VARIABLE,
>>   				      event->ip.pid, sample->addr,&al);
>> diff --git a/tools/perf/util/event.c b/tools/perf/util/event.c
>> index 3c1b8a6..49a9315 100644
>> --- a/tools/perf/util/event.c
>> +++ b/tools/perf/util/event.c
>> @@ -771,6 +771,11 @@ int perf_event__preprocess_sample(const union perf_event *event,
>>
>>   	thread__find_addr_map(thread, session, cpumode, MAP__FUNCTION,
>>   			      event->ip.pid, event->ip.ip, al);
>> +	/* try to resolve for user space */
>> +	if (!al->map)
>> +		thread__find_addr_map(thread, session, PERF_RECORD_MISC_USER,
>> +				MAP__FUNCTION, event->ip.pid, event->ip.ip, al);
>> +
>>   	dump_printf(" ...... dso: %s\n",
>>   		    al->map ? al->map->dso->long_name :
>>   			al->level == 'H' ? "[hypervisor]" : "<not found>");
>>

  reply	other threads:[~2011-07-21  9:36 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-07-17  9:30 [PATCH -tip v2 0/6] perf script: add BTS analysis features Akihiro Nagai
2011-07-17  9:30 ` [PATCH -tip v2 1/6] [BUGFIX] perf script: print correct IP address Akihiro Nagai
2011-07-17 15:59   ` David Ahern
2011-07-17 17:29     ` Frederic Weisbecker
2011-07-17  9:30 ` [PATCH -tip v2 2/6] perf script: add magic word to indicate the failure of resolving symbols Akihiro Nagai
2011-07-17 16:07   ` David Ahern
2011-07-17 16:30     ` David Ahern
2011-07-21  9:36       ` Akihiro Nagai
2011-07-21  9:42         ` Peter Zijlstra
2011-07-21 14:39         ` David Ahern
2011-07-22  4:25           ` Akihiro Nagai
2011-07-17  9:30 ` [PATCH -tip v2 3/6] perf script: resolve DSOs and symbols for user-space Akihiro Nagai
2011-07-17 16:20   ` David Ahern
2011-07-21  9:36     ` Akihiro Nagai [this message]
2011-07-17  9:31 ` [PATCH -tip v2 4/6] perf script: print DSOs and symbols for BTS branch_from addr Akihiro Nagai
2011-07-17 16:22   ` David Ahern
2011-07-21  9:36     ` Akihiro Nagai
2011-07-17  9:31 ` [PATCH -tip v2 5/6] perf script: add the offset field specifier Akihiro Nagai
2011-07-17 16:28   ` David Ahern
2011-07-17  9:31 ` [PATCH -tip v2 6/6] perf script: add option resolving vmlinux path Akihiro Nagai
2011-07-17 16:36   ` David Ahern
2011-07-21  9:36     ` Akihiro Nagai

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=4E27F32F.4020606@hitachi.com \
    --to=akihiro.nagai.hw@hitachi.com \
    --cc=acme@infradead.org \
    --cc=dsahern@gmail.com \
    --cc=fweisbec@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=masami.hiramatsu.pt@hitachi.com \
    --cc=mingo@elte.hu \
    --cc=paulus@samba.org \
    --cc=peterz@infradead.org \
    --cc=yrl.pp-manager.tt@hitachi.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.