From: Arnaldo Carvalho de Melo <acme@infradead.org>
To: Stephane Eranian <eranian@google.com>
Cc: linux-kernel@vger.kernel.org, peterz@infradead.org,
mingo@elte.hu, paulus@samba.org, davem@davemloft.net,
fweisbec@gmail.com, perfmon2-devel@lists.sf.net,
eranian@gmail.com, tzanussi@gmail.com
Subject: Re: how to use perf annotate on the kernel
Date: Thu, 3 Jun 2010 15:06:13 -0300 [thread overview]
Message-ID: <20100603180613.GA10469@ghostprotocols.net> (raw)
In-Reply-To: <20100603175445.GC8928@ghostprotocols.net>
Em Thu, Jun 03, 2010 at 02:54:45PM -0300, Arnaldo Carvalho de Melo escreveu:
> Em Thu, Jun 03, 2010 at 07:23:02PM +0200, Stephane Eranian escreveu:
> > # perf annotate (or annotate -d '[kernel.kallsyms]'?)
> > Can't annotate __lock_acquire: No vmlinux file was found in the path
> >
> > # perf annotate -k vmlinux
> > objdump: '[kernel.kallsyms]': No such file
>
> This looks like a bug in how it reports this problem, probably vmlinux
> is not in the current directory, or it is but has a build-id that
> doesn't matches the one in the perf.data file.
>
> But the message is wrong, should be like it is in the tui, for this same
> situation:
>
> ui_helpline__puts("No vmlinux file found, can't "
> "annotate with just a kallsyms file");
>
> > Am I missing something here?
>
> If you don't specify it with --vmlinux/-k it will try to find it in one
> of these places:
>
> vmlinux_path[vmlinux_path__nr_entries] = strdup("vmlinux");
> vmlinux_path[vmlinux_path__nr_entries] = strdup("/boot/vmlinux");
> snprintf(bf, sizeof(bf), "/boot/vmlinux-%s", uts.release);
> vmlinux_path[vmlinux_path__nr_entries] = strdup(bf);
> snprintf(bf, sizeof(bf), "/lib/modules/%s/build/vmlinux", uts.release);
> vmlinux_path[vmlinux_path__nr_entries] = strdup(bf);
> snprintf(bf, sizeof(bf), "/usr/lib/debug/lib/modules/%s/vmlinux",
> uts.release);
> vmlinux_path[vmlinux_path__nr_entries] = strdup(bf);
>
> It also now looks at /sys/kernel/notes, gets the build-id, and looks up
> in the build-id cache.
For instance, here using -vvv I get:
[root@emilia ~]# perf annotate -vvv memcpy > /dev/null
build id event received for [kernel.kallsyms]: 310920b54cbbf242dbfa09052f652806d2c73821
build id event received for /lib64/libtinfo.so.5.7: cd9da7b5b1fcb25ee6b3762bb9fe62f782590fd5
Looking at the vmlinux_path (6 entries long)
No build_id in /root/.debug/.build-id/31/0920b54cbbf242dbfa09052f652806d2c73821, ignoring it
No build_id in vmlinux, ignoring it
No build_id in /boot/vmlinux, ignoring it
No build_id in /boot/vmlinux-2.6.35-rc1, ignoring it
Using /lib/modules/2.6.35-rc1/build/vmlinux for symbols
hist_entry__inc_addr_samples: ip=0xffffffff811ea69e
0xffffffff811ea690 memcpy: period++ [ip: 0xffffffff811ea69e, 0xe] => 1
hist_entry__annotate: filename=/lib/modules/2.6.35-rc1/build/vmlinux, sym=memcpy, start=0xffffffff811ea690, end=0xffffffff811ea730
annotating [0x187e770] /lib/modules/2.6.35-rc1/build/vmlinux : [0x19b1f70] memcpy
Executing: objdump --start-address=0xffffffff811ea690 --stop-address=0xffffffff811ea730 -dS /lib/modules/2.6.35-rc1/build/vmlinux|grep -v /lib/modules/2.6.35-rc1/build/vmlinux|expand
[root@emilia ~]#
I'm removing all vmlinux from the path so that I can reproduce what you see.
- Arnaldo
next prev parent reply other threads:[~2010-06-03 18:06 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-06-03 17:23 how to use perf annotate on the kernel Stephane Eranian
2010-06-03 17:54 ` Arnaldo Carvalho de Melo
2010-06-03 18:06 ` Arnaldo Carvalho de Melo [this message]
2010-06-03 18:11 ` Arnaldo Carvalho de Melo
2010-06-03 18:18 ` Stephane Eranian
2010-06-04 0:20 ` Arnaldo Carvalho de Melo
2010-06-04 0:39 ` Arnaldo Carvalho de Melo
2010-06-04 8:55 ` Stephane Eranian
2010-06-03 18:12 ` Stephane Eranian
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=20100603180613.GA10469@ghostprotocols.net \
--to=acme@infradead.org \
--cc=davem@davemloft.net \
--cc=eranian@gmail.com \
--cc=eranian@google.com \
--cc=fweisbec@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=paulus@samba.org \
--cc=perfmon2-devel@lists.sf.net \
--cc=peterz@infradead.org \
--cc=tzanussi@gmail.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.