Add support for JDK23
JDK23 is currently in release-candidate status and expected to reach GA on 17th Sep. Attempting to profile it currently results in the following error:
ERRO[1084] Failed to handle new anonymous mapping for PID 2338658: JVM symbol 'CompiledMethod.Sizeof' not found
Probably related:
- https://github.com/openjdk/jdk/commit/83eba863fec5ee7e30c4f9b11122ad1deed3d2ec merges
CompiledMethodintonmethod - https://github.com/openjdk/jdk/commit/bdcc2400db63e604d76f9b5bd3c876271743f69f removes
nmethod._dependencies_offset - https://github.com/openjdk/jdk/commit/b704e91241b0
-
CodeBlob::frame_compchangedint->int16_t -
Nmethod::_metadata_offsetchangedint->uint16_t
-
I didn't complete this before my last day at Elastic, but my patches for the progress so far live here: https://github.com/athre0z/opentelemetry-ebpf-profiler/commit/e25c90dbe4b58bec31c6ba062c167a68d7c21163
It seemed to be generally working, though it still needs more testing and probably also some debugging. I had noticed a small percentage of unsymbolized frames.
Working on this now, wip tree at https://github.com/fabled/opentelemetry-ebpf-profiler/tree/tt-jdk23
I believe the metadata and immutable data fixup should resolve majority of issue. But will still follow up with further additional comments and documentation.