Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1555642

Re: [PATCH perf/core 4/4] perf-probe: Find probe events without target module

From Masami Hiramatsu <mhiramat@kernel.org>
Newsgroups linux.kernel
Subject Re: [PATCH perf/core 4/4] perf-probe: Find probe events without target module
Date 2017-01-10 17:00 +0100
Message-ID <sY70b-3cI-27@gated-at.bofh.it> (permalink)
References <sWRJL-4oE-3@gated-at.bofh.it> <sWRJM-4oE-11@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


On Sat,  7 Jan 2017 14:28:42 +0900
Masami Hiramatsu <mhiramat@kernel.org> wrote:

> Find probe events without -m "module" option. If perf-probe
> failed to find given function in kernel image, it tries to
> find same symbol and module in kallsyms, and retry search
> in the found module. E.g.
> 
>   # perf probe -D i915_capabilities
>   p:probe/i915_capabilities i915:i915_capabilities+0
> 
> Note: without -m option, perf probe can not find inlined
> function since there is no symbol information in kallsyms.
> 
> Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
> Suggested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
> ---
>  tools/perf/util/probe-event.c |   74 ++++++++++++++++++++++++++++++-----------
>  1 file changed, 55 insertions(+), 19 deletions(-)
> 
> diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c
> index 6a6f44d..09bd093 100644
> --- a/tools/perf/util/probe-event.c
> +++ b/tools/perf/util/probe-event.c
> @@ -858,11 +858,7 @@ static int try_to_find_probe_trace_events(struct perf_probe_event *pev,
>  
>  	debuginfo__delete(dinfo);
>  
> -	if (ntevs == 0)	{	/* No error but failed to find probe point. */
> -		pr_warning("Probe point '%s' not found.\n",
> -			   synthesize_perf_probe_point(&pev->point));
> -		return -ENOENT;
> -	} else if (ntevs < 0) {
> +	if (ntevs < 0) {
>  		/* Error path : ntevs < 0 */
>  		pr_debug("An error occurred in debuginfo analysis (%d).\n", ntevs);
>  		if (ntevs == -EBADF)
> @@ -2073,8 +2069,10 @@ static int find_perf_probe_point_from_map(struct probe_trace_point *tp,
>  	} else {
>  		if (tp->symbol && !addr) {
>  			if (kernel_get_symbol_address_by_name(tp->symbol,
> -						&addr, true, false) < 0)
> +						&addr, true, false) < 0) {
> +				ret = 0;
>  				goto out;

Oops, I've found that this is not needed and breaks --list result.
I'll update it.

Thanks.


-- 
Masami Hiramatsu <mhiramat@kernel.org>

Back to linux.kernel | Previous | Next — Previous in thread | Find similar | Unroll thread


Thread

[PATCH perf/core 0/4] perf-probe: Fix and improve module probe events Masami Hiramatsu <mhiramat@kernel.org> - 2017-01-07 06:30 +0100
  [PATCH perf/core 3/4] perf-probe: Fix to probe on gcc generated functions in modules Masami Hiramatsu <mhiramat@kernel.org> - 2017-01-07 06:30 +0100
  [PATCH perf/core 4/4] perf-probe: Find probe events without target module Masami Hiramatsu <mhiramat@kernel.org> - 2017-01-07 06:30 +0100
    Re: [PATCH perf/core 4/4] perf-probe: Find probe events without  target module Masami Hiramatsu <mhiramat@kernel.org> - 2017-01-10 17:00 +0100

csiph-web