RFR: 8295851: Do not use ttyLock in BytecodeTracer::trace [v4]

David Holmes dholmes at openjdk.org
Wed Jun 25 02:48:28 UTC 2025


On Tue, 24 Jun 2025 12:30:11 GMT, Coleen Phillimore <coleenp at openjdk.org> wrote:

>> This didn't need ttyLock for synchronization, the code only needs to see if the method changes so it can print the method name before the bytecodes, like:
>> 
>> [490166] static void java.lang.String.<clinit>()
>> [490166]       13    18  putstatic 613 <java/lang/String.CASE_INSENSITIVE_ORDER:Ljava/util/Comparator;>
>> [490166]       14    21  return
>> 
>> [490166] static void java.lang.System.<clinit>()
>> [490166]       15     0  invokestatic 471 <java/lang/System.registerNatives()V>
>> [490166]       16     3  aconst_null
>> [490166]       17     4  putstatic 474 <java/lang/System.in:Ljava/io/InputStream;>
>> 
>> Verified manually and added some parallelism to the test, and fixed trace() to initialize is_linked(), which it always is.
>> Also ran tier1-4.
>
> Coleen Phillimore has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Some renaming and more comments and a load_acquire.

Okay I finally realized the strange way in which this code works.

You could use a ThreadLocal for the current method being printed.

But I'm okay with the current changes.

Thanks

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

Marked as reviewed by dholmes (Reviewer).

PR Review: https://git.openjdk.org/jdk/pull/25915#pullrequestreview-2956114028


More information about the hotspot-runtime-dev mailing list