RFR: 8316229: Enhance class initialization logging
David Holmes
dholmes at openjdk.org
Wed Sep 20 01:56:39 UTC 2023
On Tue, 19 Sep 2023 07:49:06 GMT, Aleksey Shipilev <shade at openjdk.org> wrote:
>> This change adds some additional debug logging to the class linking and initialization process. It was useful in diagnosing the deadlock described by:
>>
>> https://bugs.openjdk.org/browse/JDK-8316469
>>
>> See the example output in JBS issue.
>>
>> The changes are mostly uncontroversial but I needed to expose a way to access the init thread's name, which can't use the regular `name()` method as the safety check doesn't recognise the calling context as being safe.
>>
>> Testing:
>> - manual examination of logging output
>> - ran the only test that enables class+init logging: runtime/logging/ClassInitializationTest.java (no change as expected)
>> - tiers1-3 sanity
>>
>> Thanks.
>
> src/hotspot/share/oops/instanceKlass.cpp line 773:
>
>> 771: MonitorLocker ml(current, _init_monitor);
>> 772:
>> 773: bool debug_logging_enabled = log_is_enabled(Debug, class, init);
>
> Here and later: Do we need to peel off the `log_is_enabled` check into a separate variable? We don't do it in most (all?) of our places.
ha! You'll see that was my last separate commit. It bugs me when we keep checking `log_is_enabled` over and over in the same chunk of code. Even though it is supposed to be fast it is surely fast with a local?
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/15809#discussion_r1330866851
More information about the hotspot-dev
mailing list