RFR: 8249004: Reduce ThreadsListHandle overhead in relation to direct handshakes [v10]

David Holmes dholmes at openjdk.java.net
Wed Nov 3 01:31:12 UTC 2021


On Tue, 2 Nov 2021 17:26:41 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.cr2.patch

Hi Dan,

Generally seems okay but a couple of minor issues below.

Thanks,
David

src/hotspot/share/runtime/handshake.cpp line 350:

> 348: }
> 349: 
> 350: void Handshake::execute(HandshakeClosure* hs_cl, ThreadsListHandle* tlh_p, JavaThread* target) {

Nit: can we drop the `_p` part of `tlh_p` please.

src/hotspot/share/runtime/thread.cpp line 446:

> 444:   Thread* current_thread = nullptr;
> 445:   if (checkTLHOnly) {
> 446:     current_thread = Thread::current();

This seems redundant due to line 463. You can just have a `if (!checkTLHOnly)` block here.

src/hotspot/share/runtime/thread.cpp line 1764:

> 1762:   guarantee(Thread::is_JavaThread_protected(this, /* checkTLHOnly */ true),
> 1763:             "missing ThreadsListHandle in calling context.");
> 1764:   if (is_exiting()) {

Can't we remove this the same as we did for `java_suspend()`?

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

Changes requested by dholmes (Reviewer).

PR: https://git.openjdk.java.net/jdk/pull/4677


More information about the serviceability-dev mailing list