[GR-54994] Remove duplicate ThreadSleep JFR events and use nanosNow() to timestamp JFR chunks. #9210
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Related issues: #9201 and #9199
This pull request:
PlatformTimeUtils.nanosNow()method. This ensures that borrowed java-level JDK code that usesJVM.nanosNow()is using the same clock that we timestamp chunk files with. See the comment here. Currently we useSystem.currentTimeMillis()to timestamp chunks, which is a different clock and only has ms precision. This might cause inconsistencies if JDK code usesJVM.nanosNow()and compares it to times retrieved fromSystem.currentTimeMillis().jdk.ThreadSleepevents from SVM code. Previously the events were being emitted from borrowed Java-level JDK code and then again from SubstrateVM code.Before

After:
