Intercept java.util.concurrent locks more efficiently #1013
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.
Description
When profiling locks on JDK 21 or newer, JVM started emitting the following warning:
In fact, the warning appeared since JDK 15 because of JDK-8238460, however, async-profiler successfully suppressed this warning earlier.
This PR re-implements suppression of the warning in a cleaner way and also makes ReentrantLock profiling a bit more efficient. As a part of this change, async-profiler no longer depends on HotSpot private
JVM_GetManagementAPI and does not alter Unified JVM Logging settings.Related issues
https://bugs.openjdk.org/browse/JDK-8238460
Motivation and context
How has this been tested?
make teston JDK 8, 11, 21, 24-ea; manually check flame graphs of java.util.concurrent locks andsynchronizedmonitors.By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.