From: Arnaldo Carvalho de Melo on
Em Wed, Apr 21, 2010 at 03:56:24PM -0400, Masami Hiramatsu escreveu:
> Fix perf probe to use symtab only if there is no debuginfo,
> because debuginfo has more precise information than symtab.

"more precise"? Wouldn't it be "more expressive", i.e. with more
information (parameter list with types, return type, location of
parameters, etc), because what is common to both have the same value,
i.e. the function address and size.

> If we can't find a function in debuginfo, we never find it
> in symtab.
>
> Signed-off-by: Masami Hiramatsu <mhiramat(a)redhat.com>
> Reported-by: Arnaldo Carvalho de Melo <acme(a)redhat.com>
> Cc: Paul Mackerras <paulus(a)samba.org>
> Cc: Peter Zijlstra <peterz(a)infradead.org>
> Cc: Mike Galbraith <efault(a)gmx.de>
> Cc: Frederic Weisbecker <fweisbec(a)gmail.com>
> Cc: Ingo Molnar <mingo(a)elte.hu>
> ---
>
> tools/perf/util/probe-event.c | 17 +++++++++--------
> 1 files changed, 9 insertions(+), 8 deletions(-)
>
> diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c
> index 4fb4803..5d3baec 100644
> --- a/tools/perf/util/probe-event.c
> +++ b/tools/perf/util/probe-event.c
> @@ -180,15 +180,16 @@ static int try_to_find_kprobe_trace_events(struct perf_probe_event *pev,
> return -ENOENT;
> }
> /* Error path : ntevs < 0 */
> - if (need_dwarf) {
> - if (ntevs == -EBADF)
> - pr_warning("No dwarf info found in the vmlinux - "
> - "please rebuild with CONFIG_DEBUG_INFO=y.\n");
> - return ntevs;
> + pr_debug("An error occurred in debuginfo analysis (%d).\n", ntevs);
> + if (ntevs == -EBADF) {
> + pr_warning("Warning: No dwarf info found in the vmlinux - "
> + "please rebuild kernel with CONFIG_DEBUG_INFO=y.\n");
> + if (!need_dwarf) {
> + pr_debug("Trying to use symbols.\nn");
> + return 0;
> + }
> }
> - pr_debug("An error occurred in debuginfo analysis."
> - " Try to use symbols.\n");
> - return 0;
> + return ntevs;
> }
>
> #define LINEBUF_SIZE 256
>
>
> --
> Masami Hiramatsu
> e-mail: mhiramat(a)redhat.com
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Arnaldo Carvalho de Melo on
Em Mon, Apr 26, 2010 at 02:59:36PM -0400, Masami Hiramatsu escreveu:
> Arnaldo Carvalho de Melo wrote:
> > Em Wed, Apr 21, 2010 at 03:56:24PM -0400, Masami Hiramatsu escreveu:
> >> Fix perf probe to use symtab only if there is no debuginfo,
> >> because debuginfo has more precise information than symtab.
> >
> > "more precise"? Wouldn't it be "more expressive", i.e. with more
> > information (parameter list with types, return type, location of
> > parameters, etc), because what is common to both have the same value,
> > i.e. the function address and size.
>
> Indeed. debuginfo has just more information than symtab, but
> symtab certainly provides precise information for symbol-address.

I applied the patch, just replaced "more precise information" with "more
information".

- Arnaldo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/