Re: [PATCH 0/3] perf jvmti: Various fixes to JVMTI agent

From: Ian Rogers
Date: Thu May 14 2020 - 18:41:42 EST


On Thu, May 14, 2020 at 6:23 AM Arnaldo Carvalho de Melo
<arnaldo.melo@xxxxxxxxx> wrote:
>
> Em Thu, May 14, 2020 at 04:56:07PM +0800, Nick Gasson escreveu:
> > On 04/27/20 18:35 pm, Jiri Olsa wrote:
> > >
> > > adding Stephane to the loop
>
> Stephane, Ian, can you guys please take a look at this one and provide a
> Reviewed-by or Acked-by?
>
> Thanks,
>
> - Arnaldo
>
>
> > > jirka
> > >
> > >>
> > >> These three patches fix a couple of issues I ran into while using the
> > >> jitdump JVMTI agent to profile the SPECjbb benchmark.
> > >>
> >
> > Hi, any feedback on these patches?
> >
> > Thanks,
> > Nick
>

Thanks Nick,

If you are looking at this code I believe there is a bug in that the
loop handling jvmtiCompiledMethodLoadInlineRecord is writing out the
entire line number table before a pc and not just the line number
table at the pc. This loop in do_get_line_numbers:

if (loc_tab[i].start_location < bci) {
tab[lines].pc = (unsigned long)pc;
tab[lines].line_number = loc_tab[i].line_number;
tab[lines].discrim = 0; /* not yet used */
tab[lines].methodID = m;
lines++;
} else {

It could possibly make sense if it were iterating over the inline data
in the jvmtiCompiledMethodLoadInlineRecord rather than the line number
table.
Fixing this is toward the end of a list of things I need to look at.

Thanks,
Ian

> > >>
> > >>
> > >> Nick Gasson (3):
> > >> perf jvmti: Fix jitdump for methods without debug info
> > >> perf jvmti: Do not report error when missing debug information
> > >> perf jvmti: Fix demangling Java symbols
> > >>
> > >> tools/perf/jvmti/libjvmti.c | 24 +++++++--------
> > >> tools/perf/tests/Build | 1 +
> > >> tools/perf/tests/builtin-test.c | 4 +++
> > >> tools/perf/tests/demangle-java-test.c | 42 +++++++++++++++++++++++++++
> > >> tools/perf/tests/tests.h | 1 +
> > >> tools/perf/util/demangle-java.c | 13 +++++----
> > >> 6 files changed, 66 insertions(+), 19 deletions(-)
> > >> create mode 100644 tools/perf/tests/demangle-java-test.c
> > >>
> > >> --
> > >> 2.26.1
> > >>
> >
>
> --
>
> - Arnaldo