RFR: 8297600: Check current thread in selected JRT_LEAF methods [v2]

David Holmes dholmes at openjdk.org
Tue Nov 29 02:03:20 UTC 2022


On Mon, 28 Nov 2022 12:26:41 GMT, Aleksey Shipilev <shade at openjdk.org> wrote:

>> With [JDK-8275286](https://bugs.openjdk.org/browse/JDK-8275286), we added the `Thread::current()` checks for most of the JRT entries. But `JRT_LEAF` is still not checked, because not every `JRT_LEAF` carries a `JavaThread` argument. Having assertions there helps for two reasons. First, these methods can be called from the stub/compiler code, which might be erroneous with thread handling (especially in x86_32 that does not have a dedicated thread register). Second, in the post-Loom world, current thread can change suddenly, as evidenced here: https://mail.openjdk.org/pipermail/hotspot-compiler-dev/2022-November/060779.html.
>> 
>> We can add the thread checks to relevant `JRT_LEAF` methods that accept `JavaThread*` too.
>> 
>> Additional testing:
>>  - [x] Linux x86_64 fastdebug `tier1`
>>  - [x] Linux x86_64 fastdebug `tier2`
>>  - [x] Linux x86_32 fastdebug `tier1`
>>  - [x] Linux x86_32 fastdebug `tier2`
>
> Aleksey Shipilev has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Revert some additions

That seems more recognisably correct. It would be even better if `thread` were named `current` in those cases where it must be, but that is a separate RFE.

Thanks.

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

Marked as reviewed by dholmes (Reviewer).

PR: https://git.openjdk.org/jdk/pull/11359


More information about the hotspot-dev mailing list