RFR: 8342818: Implement CPU Time Profiling for JFR [v4]

Markus Grönlund mgronlun at openjdk.org
Thu Oct 31 13:07:41 UTC 2024


On Wed, 30 Oct 2024 19:34:23 GMT, Johannes Bechberger <jbechberger at openjdk.org> wrote:

>> This is the code for the [JEP draft: CPU Time based profiling for JFR].
>
> Johannes Bechberger has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Remove min_valid_free_size_bytes

Linux AArch64-debug:

Are you enqueuing entries that have already been unloaded?

A fatal error has been detected by the Java Runtime Environment:

SIGSEGV (0xb) at pc=0x0000ffff898316e4, pid=458651, tid=458700

JRE version: Java(TM) SE Runtime Environment (24.0) (fastdebug build 24-internal-2024-10-30-2131063.markus.gronlund.jdkcopy)
Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 24-internal-2024-10-30-2131063.markus.gronlund.jdkcopy, mixed mode, tiered, compressed oops, compressed class ptrs, g1 gc, linux-aarch64)
 Problematic frame:
 V  [libjvm.so+0xe1b6e4]  module_id(PackageEntry const*, bool)+0x34

 If you would like to submit a bug report, please visit:
   https://bugreport.java.com/bugreport/crash.jsp

---------------  T H R E A D  ---------------

Current thread (0x0000fffef803f480):  JavaThread "JFR Recorder Thread" daemon [_thread_in_vm, id=458700, stack(0x0000ffff05772000,0x0000ffff05970000) (2040K)]

Stack: [0x0000ffff05772000,0x0000ffff05970000],  sp=0x0000ffff0596e100,  free space=2032k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [libjvm.so+0xe1b6e4]  module_id(PackageEntry const*, bool)+0x34  (moduleEntry.hpp:111)
V  [libjvm.so+0xe1b938]  package_id(Klass const*, bool)+0x48  (jfrTypeSet.cpp:219)
V  [libjvm.so+0xe1c6f4]  write_klass(JfrCheckpointWriter*, Klass const*, bool, int&)+0xf0  (jfrTypeSet.cpp:350)
V  [libjvm.so+0xe22c2c]  JfrArtifactCallbackHost<Klass const*, CompositeFunctor<Klass const*, JfrTypeWriterHost<JfrPredicatedTypeWriterImplHost<Klass const*, SerializePredicate<Klass const*>, &(write__klass(JfrCheckpointWriter*, void const*))>, 183u>, KlassArtifactRegistrator> >::do_artifact(void const*)+0xcc  (jfrTypeSet.cpp:398)
V  [libjvm.so+0xe14fe0]  EpochDispatchOp<JfrEpochQueue<JfrEpochQueueKlassPolicy>::ElementDispatch<KlassFunctor> >::dispatch(bool, unsigned char const*, unsigned long)+0xd0  (jfrTraceIdKlassQueue.hpp:42)
V  [libjvm.so+0xe15574]  void JfrEpochQueue<JfrEpochQueueKlassPolicy>::iterate<KlassFunctor>(KlassFunctor&, bool)+0x324  (jfrStorageUtils.inline.hpp:160)
V  [libjvm.so+0xe13ad0]  JfrTraceIdKlassQueue::iterate(void (*)(Klass*), bool)+0x40  (jfrTraceIdKlassQueue.cpp:269)
V  [libjvm.so+0xe220bc]  JfrTypeSet::serialize(JfrCheckpointWriter*, JfrCheckpointWriter*, bool, bool)+0xf28  (jfrTypeSet.cpp:559)
V  [libjvm.so+0xd64b98]  flush_type_set(Thread*)+0x98  (jfrCheckpointManager.cpp:640)
V  [libjvm.so+0xd6a8e0]  JfrCheckpointManager::flush_type_set()+0x880  (jfrCheckpointManager.cpp:650)
V  [libjvm.so+0xde0d68]  JfrRecorderService::flush()+0xc8  (jfrRecorderService.cpp:158)
V  [libjvm.so+0xde1660]  JfrRecorderService::invoke_flush()+0xd0  (jfrRecorderService.cpp:158)
V  [libjvm.so+0xde25e0]  JfrRecorderService::flushpoint()+0x16c  (jfrRecorderService.cpp:680)
V  [libjvm.so+0xde3348]  recorderthread_entry(JavaThread*, JavaThread*)+0x2c8  (jfrRecorderThreadLoop.cpp:83)
V  [libjvm.so+0xd50400]  JavaThread::thread_main_inner()+0xcc  (javaThread.cpp:759)
V  [libjvm.so+0x15e59e0]  Thread::call_run()+0xac  (thread.cpp:234)
V  [libjvm.so+0x131fae4]  thread_native_entry(Thread*)+0x130  (os_linux.cpp:858)
C  [libpthread.so.0+0x7950]  start_thread+0x190

-------------

PR Comment: https://git.openjdk.org/jdk/pull/20752#issuecomment-2449791321


More information about the hotspot-dev mailing list