RFR: 8249004: Reduce ThreadsListHandle overhead in relation to direct handshakes [v6]
Coleen Phillimore
coleenp at openjdk.java.net
Fri Oct 15 18:34:48 UTC 2021
On Thu, 14 Oct 2021 16:03:28 GMT, Daniel D. Daugherty <dcubed at openjdk.org> wrote:
>> A fix to reduce ThreadsListHandle overhead in relation to handshakes and
>> we add sanity checks for ThreadsListHandles higher in the call stack.
>>
>> This fix was tested with Mach5 Tier[1-8]; Tier8 is still running.
>
> Daniel D. Daugherty has updated the pull request incrementally with one additional commit since the last revision:
>
> 8249004.cr1.patch
This has more moving pieces than the last version. I'm a bit uneasy about passing NULL as a thread to Handshake::execute(). This shouldn't be something that should happen.
src/hotspot/share/runtime/handshake.cpp line 358:
> 356: bool target_is_dead = false;
> 357: if (target == nullptr) {
> 358: target_is_dead = true;
Why would you pass a NULL target thread to Handshake::execute? Why would the caller not check if the target is dead?
src/hotspot/share/runtime/thread.cpp line 497:
> 495: // placement somewhere in the calling context.
> 496: bool Thread::is_JavaThread_protected_by_my_ThreadsList(const JavaThread* p) {
> 497: Thread* current_thread = Thread::current();
Shouldn't you call this on the current thread as "this" argument?
-------------
PR: https://git.openjdk.java.net/jdk/pull/4677
More information about the serviceability-dev
mailing list