Re: [PATCH] perf jvmti: remove redundant jitdump line table entries

From: Ian Rogers
Date: Wed May 27 2020 - 14:08:38 EST


On Tue, May 26, 2020 at 10:40 PM Nick Gasson <nick.gasson@xxxxxxx> wrote:
>
> On 05/27/20 13:03 PM, Ian Rogers wrote:
> >
> > Great result, thanks! I note there is a lack of symbolization when
> > benchmarking a few Java applications. I'll try to see if there's a
> > sensible resolution for those.
> >
>
> I noticed it loses information when the Hotspot code cache is
> resized. I've been working around that by setting
> -XX:InitialCodeCacheSize and -XX:ReservedCodeCacheSize to large
> values. Does this help in your case?

Thanks, I tried and also with Steve's patch:
https://lore.kernel.org/lkml/1590544271-125795-1-git-send-email-steve.maclean@xxxxxxxxxxxxxxxxxxx/

Trying something very basic like just the -version command with compile only:
/tmp/perf/perf record -k 1 -e cycles:u -F 6500 -o /tmp/perf.data java
-agentpath:/tmp/perf/libperf-jvmti.so -XX:+PreserveFramePointer
-XX:InitialCodeCacheSize=2G -XX:ReservedCodeCacheSize=2G
-XX:CompileOnly=1 -version
/tmp/perf/perf inject -i /tmp/perf.data -o /tmp/perf-jit.data -j
/tmp/perf/perf report -i /tmp/perf-jit.data

I don't see any of the JDK classes but 35 unknown symbols out of 272.
The JDK classes are stripped to some degree iirc, but we should be
able to give a symbol name as we don't care about local variables and
like.

This isn't a blocker for this patch and perhaps I'm special in seeing
this problem. Thanks,
Ian

> >
> > It'd be better to make this into two patches. Also on acme's perf/core
> > branch if possible:
> > https://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git/log/?h=perf/core
>
> OK sure, I'll do that.
>
> --
> Nick