From: Frederic Weisbecker <fweisbec@gmail.com>
To: mingo@redhat.com, hpa@zytor.com, acme@redhat.com,
paulus@samba.org, linux-kernel@vger.kernel.org,
a.p.zijlstra@chello.nl, efault@gmx.de, tglx@linutronix.de,
mhiramat@redhat.com, mingo@elte.hu
Cc: linux-tip-commits@vger.kernel.org
Subject: Re: [tip:perf/urgent] perf symbols: Allow lookups by symbol name too
Date: Tue, 15 Dec 2009 03:12:03 +0100 [thread overview]
Message-ID: <20091215021201.GB6048@nowhere> (raw)
In-Reply-To: <tip-79406cd789f745ac6aa9d597895f904a98a14007@git.kernel.org>
On Sat, Dec 12, 2009 at 07:22:03AM +0000, tip-bot for Arnaldo Carvalho de Melo wrote:
> Commit-ID: 79406cd789f745ac6aa9d597895f904a98a14007
> Gitweb: http://git.kernel.org/tip/79406cd789f745ac6aa9d597895f904a98a14007
> Author: Arnaldo Carvalho de Melo <acme@redhat.com>
> AuthorDate: Fri, 11 Dec 2009 18:50:22 -0200
> Committer: Ingo Molnar <mingo@elte.hu>
> CommitDate: Sat, 12 Dec 2009 07:42:11 +0100
>
> perf symbols: Allow lookups by symbol name too
>
> Configurable via symbol_conf.sort_by_name, so that the cost of an
> extra rb_node on all 'struct symbol' instances is not paid by tools
> that only want to decode addresses.
>
> How to use it:
>
> symbol_conf.sort_by_name = true;
> symbol_init(&symbol_conf);
>
> struct map *map = map_groups__find_by_name(kmaps, MAP__VARIABLE, "[kernel.kallsyms]");
>
> if (map == NULL) {
> pr_err("couldn't find map!\n");
> kernel_maps__fprintf(stdout);
> } else {
> struct symbol *sym = map__find_symbol_by_name(map, sym_filter, NULL);
> if (sym == NULL)
> pr_err("couldn't find symbol %s!\n", sym_filter);
> else
> pr_info("symbol %s: %#Lx-%#Lx \n", sym_filter, sym->start, sym->end);
> }
>
> Looking over the vmlinux/kallsyms is common enough that I'll add a
> variable to the upcoming struct perf_session to avoid the need to
> use map_groups__find_by_name to get the main vmlinux/kallsyms map.
>
> The above example looks on the 'variable' symtab, but it is just
> like that for the functions one.
>
> Also the sort operation is done when we first use
> map__find_symbol_by_name, in a lazy way.
It would be nice to also have a kernel symbol resolution
helper independant of any session.
The problem is that I need to resolve a kernel variable symbol
very early, when we parse record options. We don't have any
session at this time so I can't retrieve the kmaps.
I'm not sure what's the proper way to handle that.
Thanks.
next prev parent reply other threads:[~2009-12-15 2:12 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-12-11 20:50 [PATCH 1/1] perf symbols: Allow lookups by symbol name too Arnaldo Carvalho de Melo
2009-12-14 11:21 ` Frederic Weisbecker
[not found] ` <tip-79406cd789f745ac6aa9d597895f904a98a14007@git.kernel.org>
2009-12-15 2:12 ` Frederic Weisbecker [this message]
2009-12-15 2:20 ` [tip:perf/urgent] " Arnaldo Carvalho de Melo
2009-12-15 2:32 ` Frederic Weisbecker
2009-12-15 2:44 ` Arnaldo Carvalho de Melo
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=20091215021201.GB6048@nowhere \
--to=fweisbec@gmail.com \
--cc=a.p.zijlstra@chello.nl \
--cc=acme@redhat.com \
--cc=efault@gmx.de \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tip-commits@vger.kernel.org \
--cc=mhiramat@redhat.com \
--cc=mingo@elte.hu \
--cc=mingo@redhat.com \
--cc=paulus@samba.org \
--cc=tglx@linutronix.de \
/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.