This is a repost to LKML of the patches I sent to the linux-perf-users mailing list.
I am reposting it to lkml per Arnaldo Carvalho's request.
Arnaldo:
I got my patch to work without causing perf to seg fault yesterday. So,
I am now willing to post what I have as it appears to work.
Here is a patch series for the perf Java support as I have it today. I
am posting it per your request so people can see what I have been
working on, the approach that I am taking etc. I welcome feedback on
the overall approach and the patch. It is a proof of concept patch set
showing the approach that I am using. There is still plenty of work to
do.
Work to do
1) Jit call back library needs to store the jit source code
2) Perf add source code annotation for the jit code.
3) Rewrite the jit call back library to only request re-map when it is
absolutely needed. Currently it requests a call back for every
symbol load just to exercise the perf code.
There are three parts to this work. First is the patch that adds the
uevent functionality that was written by Pawel Moll. Second is the
patch I wrote to take the uevent, which contains the remap request, and
process it. Third is the jvmti callback library that gets built and run
with the java execution. The library is compiled into java agent
library libjvm-perf.so. The perf command is invoked with
perf record java -agentpath:libjvmti-perf.so test
where test is my java workload being profiled.
The following patches in this patch set are:
1/3 Patch by Pawel Moll
2/3 Perf remap patch by Carl Love
3/3 jvmti library source code for testing the perf patch
Carl Love