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

Markus Grönlund mgronlun at openjdk.org
Wed Nov 6 18:28:41 UTC 2024


On Thu, 31 Oct 2024 16:09:37 GMT, Markus Grönlund <mgronlun at openjdk.org> wrote:

>> 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
> 
> ---------------  T H R E A D  ---------------
> 
> Current thread (0x0000ffffac4222b0):  JavaThread "JFR Recorder Thread" daemon [_thread_in_vm, id=144094, stack(0x0000ffff5e17a000,0x0000ffff5e378000) (2040K)]
> 
> Stack: [0x0000ffff5e17a000,0x0000ffff5e378000],  sp=0x0000ffff5e376110,  free space=2032k
> Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
> V  [libjvm.so+0xe19e54]  get_cld(Klass const*)+0x34  (klass.hpp:684)
> V  [libjvm.so+0xe1c674]  write_klass(JfrCheckpointWriter*, Klass const*, bool, int&)+0x70  (jfrTypeSet.cpp:370)
> V  [libjvm.so+0xe22d40]  JfrArtifactCallbackHost<Klass const*, CompositeFunctor<Klass const*, CompositeFunctor<Klass const*, JfrTypeWriterHost<JfrPredicatedTypeWriterImplHost<Klass const*, LeakPredicate<Klass const*>, &(write__klass__leakp(JfrCheckpointWriter*, void const*))>, 183u>, JfrTypeWriterHost<JfrPredicatedTypeWriterImplHost<Klass const*, SerializePredicate<Klass const*>, &(write__klass(JfrCheckpointWriter*, void const*))>, 183u> >, KlassArtifactRegistrator> >::do_artifact(void const*)+0x90  (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+0xe15328]  void JfrEpochQueue<JfrEpochQueueKlassPolicy>::iterate<KlassFunctor>(KlassFunctor&, bool)+0xd8  (jfrStorageUtils.inline.hpp:160)
> V  [libjvm.so+0xe13ad0]  JfrTraceIdKlassQueue::iterate(void (*)(Klass*), bool)+0x40  (jfrTraceIdKlassQueue.cpp:269)
> V  [libjvm.so+0xe21358]  JfrTypeSet::serialize(JfrCheckpointWriter*, JfrCheckpointWriter*, bool, bool)+0x1c4  (jfrTypeSet.cpp:565)
> V  [libjvm.so+0xd6baf4]  JfrCheckpointManager::write_type_set()+0x1a0  (jfrCheckpointManager.cpp:617)
> V  [libjvm.so+0xddfa54]  JfrRecorderService::post_safepoint_write()+0xb0  (jfrRecorderService.cpp:613)
> V  [libjvm.so+0xde0bdc]  JfrRecorderService::chunk_rotation()+0x3c  (jfrRecorderService.cpp:573)
> V  [libjvm.so+0xde2104]  JfrRecorderService::rotate(int)+0x100  (jfrRecorderService.cpp:539)
> V  [libjvm.so+0xde332c]  recorderthread_entry(JavaThread*, JavaThread*)+0x2ac  (jfrRecorderThreadLoop.cpp:81)
> 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  [libc.so.6+0x806b8]  start_thread+0x2d8

> @mgronlun class unloading related issues should be fixed. Could you please test it again?

java.util.IllegalFormatConversionException: d != java.lang.Double
	at java.base/java.util.Formatter$FormatSpecifier.failConversion(Formatter.java:4702)
	at java.base/java.util.Formatter$FormatSpecifier.printInteger(Formatter.java:3240)
	at java.base/java.util.Formatter$FormatSpecifier.print(Formatter.java:3195)
	at java.base/java.util.Formatter.format(Formatter.java:2801)
	at java.base/java.util.Formatter.format(Formatter.java:2738)
	at java.base/java.lang.String.format(String.java:4481)
	at jdk.jfr/jdk.jfr.internal.util.TimespanRate.toString(TimespanRate.java:62)
	at jdk.jfr/jdk.jfr.internal.settings.CPUThrottleSetting.combine(CPUThrottleSetting.java:71)
	at jdk.jfr/jdk.jfr.internal.Control.combine(Control.java:138)
	at jdk.jfr/jdk.jfr.internal.Control.findCombine(Control.java:163)
	at jdk.jfr/jdk.jfr.internal.Control.apply(Control.java:67)
	at jdk.jfr/jdk.jfr.internal.SettingsManager.setEventControl(SettingsManager.java:230)
	at jdk.jfr/jdk.jfr.internal.SettingsManager.setSettings(SettingsManager.java:148)
	at jdk.jfr/jdk.jfr.internal.MetadataRepository.setSettings(MetadataRepository.java:243)
	at jdk.jfr/jdk.jfr.internal.PlatformRecorder.updateSettingsButIgnoreRecording(PlatformRecorder.java:393)
	at jdk.jfr/jdk.jfr.internal.PlatformRecorder.updateSettings(PlatformRecorder.java:382)
	at jdk.jfr/jdk.jfr.internal.PlatformRecorder.start(PlatformRecorder.java:272)
	at jdk.jfr/jdk.jfr.internal.PlatformRecording.start(PlatformRecording.java:127)
	at jdk.jfr/jdk.jfr.Recording.start(Recording.java:177)

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

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


More information about the hotspot-dev mailing list