All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Nick Gasson <nick.gasson@arm.com>
Cc: Peter Zijlstra <peterz@infradead.org>,
	Ingo Molnar <mingo@redhat.com>,
	Mark Rutland <mark.rutland@arm.com>,
	Alexander Shishkin <alexander.shishkin@linux.intel.com>,
	Jiri Olsa <jolsa@redhat.com>, Namhyung Kim <namhyung@kernel.org>,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH 2/3] perf jvmti: Do not report error when missing debug information
Date: Wed, 27 May 2020 11:07:53 -0300	[thread overview]
Message-ID: <20200527140753.GD14219@kernel.org> (raw)
In-Reply-To: <20200427061520.24905-3-nick.gasson@arm.com>

Em Mon, Apr 27, 2020 at 02:15:15PM +0800, Nick Gasson escreveu:
> If the Java sources are compiled with -g:none to disable debug
> information the perf JVMTI plugin reports a lot of errors like:
> 
>   java: GetLineNumberTable failed with JVMTI_ERROR_ABSENT_INFORMATION
>   java: GetLineNumberTable failed with JVMTI_ERROR_ABSENT_INFORMATION
>   java: GetLineNumberTable failed with JVMTI_ERROR_ABSENT_INFORMATION
>   java: GetLineNumberTable failed with JVMTI_ERROR_ABSENT_INFORMATION
>   java: GetLineNumberTable failed with JVMTI_ERROR_ABSENT_INFORMATION
> 
> Instead if GetLineNumberTable returns JVMTI_ERROR_ABSENT_INFORMATION
> simply skip emitting line number information for that method. Unlike the
> previous patch these errors don't affect the jitdump generation, they
> just generate a lot of noise.
> 
> Similarly for native methods which also don't have line tables.
> 
> Signed-off-by: Nick Gasson <nick.gasson@arm.com>
> ---
>  tools/perf/jvmti/libjvmti.c | 13 +++++++++++--
>  1 file changed, 11 insertions(+), 2 deletions(-)
> 
> diff --git a/tools/perf/jvmti/libjvmti.c b/tools/perf/jvmti/libjvmti.c
> index 50ef524b5cd4..a9a056d68416 100644
> --- a/tools/perf/jvmti/libjvmti.c
> +++ b/tools/perf/jvmti/libjvmti.c
> @@ -41,7 +41,11 @@ do_get_line_numbers(jvmtiEnv *jvmti, void *pc, jmethodID m, jint bci,
>  	jvmtiError ret;
>  
>  	ret = (*jvmti)->GetLineNumberTable(jvmti, m, &nr_lines, &loc_tab);
> -	if (ret != JVMTI_ERROR_NONE) {
> +	if (ret == JVMTI_ERROR_ABSENT_INFORMATION || ret == JVMTI_ERROR_NATIVE_METHOD) {
> +		/* No debug information for this method */
> +		*nr = 0;
> +		return JVMTI_ERROR_NONE;
> +	} else if (ret != JVMTI_ERROR_NONE) {
>  		print_error(jvmti, "GetLineNumberTable", ret);
>  		return ret;
>  	}
> @@ -93,6 +97,9 @@ get_line_numbers(jvmtiEnv *jvmti, const void *compile_info, jvmti_line_info_t **
>  					/* free what was allocated for nothing */
>  					(*jvmti)->Deallocate(jvmti, (unsigned char *)lne);
>  					nr_total += (int)nr;
> +				} else if (ret == JVMTI_ERROR_ABSENT_INFORMATION
> +					   || ret == JVMTI_ERROR_NATIVE_METHOD) {

Please add the || operator at the end of the line next time, I'm fixing
this up this time,

Applied,

- Arnaldo

> +					/* No debug information for this method */
>  				} else {
>  					print_error(jvmti, "GetLineNumberTable", ret);
>  				}
> @@ -262,7 +269,9 @@ compiled_method_load_cb(jvmtiEnv *jvmti,
>  	if (has_line_numbers && map && map_length) {
>  		ret = get_line_numbers(jvmti, compile_info, &line_tab, &nr_lines);
>  		if (ret != JVMTI_ERROR_NONE) {
> -			warnx("jvmti: cannot get line table for method");
> +			if (ret != JVMTI_ERROR_NOT_FOUND) {
> +				warnx("jvmti: cannot get line table for method");
> +			}
>  			nr_lines = 0;
>  		} else if (nr_lines > 0) {
>  			line_file_names = malloc(sizeof(char*) * nr_lines);
> -- 
> 2.26.1
> 

-- 

- Arnaldo

  parent reply	other threads:[~2020-05-27 14:08 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-27  6:15 [PATCH 0/3] perf jvmti: Various fixes to JVMTI agent Nick Gasson
2020-04-27  6:15 ` [PATCH 1/3] perf jvmti: Fix jitdump for methods without debug info Nick Gasson
2020-05-14 22:06   ` Ian Rogers
2020-04-27  6:15 ` [PATCH 2/3] perf jvmti: Do not report error when missing debug information Nick Gasson
2020-05-14 22:08   ` Ian Rogers
2020-05-27 14:07   ` Arnaldo Carvalho de Melo [this message]
2020-05-27 14:08     ` Arnaldo Carvalho de Melo
2020-04-27  6:15 ` [PATCH 3/3] perf jvmti: Fix demangling Java symbols Nick Gasson
2020-05-14 22:09   ` Ian Rogers
2020-05-27 14:10   ` Arnaldo Carvalho de Melo
2020-05-27 14:20   ` Arnaldo Carvalho de Melo
2020-05-27 16:23     ` Arnaldo Carvalho de Melo
2020-05-27 22:34       ` Arnaldo Carvalho de Melo
2020-05-28  5:42         ` Nick Gasson
2020-04-27 10:35 ` [PATCH 0/3] perf jvmti: Various fixes to JVMTI agent Jiri Olsa
2020-05-14  8:56   ` Nick Gasson
2020-05-14 13:23     ` Arnaldo Carvalho de Melo
2020-05-14 22:41       ` Ian Rogers
2020-05-15  7:45         ` Nick Gasson

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=20200527140753.GD14219@kernel.org \
    --to=acme@kernel.org \
    --cc=alexander.shishkin@linux.intel.com \
    --cc=jolsa@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=mingo@redhat.com \
    --cc=namhyung@kernel.org \
    --cc=nick.gasson@arm.com \
    --cc=peterz@infradead.org \
    /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.