RFR: 8258284: clean up issues with nested ThreadsListHandles

Erik Österlund eosterlund at openjdk.java.net
Fri Dec 18 17:43:54 UTC 2020


On Fri, 18 Dec 2020 17:07:27 GMT, Daniel D. Daugherty <dcubed at openjdk.org> wrote:

> While working on JDK-8231627, I discovered there were issues with nested
> ThreadsListHandles. I added a new test to verify how ThreadsListHandles and
> nested ThreadsListHandles are supposed to work. I found two bugs:
> 
> 1) A failure to restore the expected _threads_hazard_ptr when a nested
>     ThreadsListHandle is destroyed.
> 
> 2) A failure to decrement _nested_threads_hazard_ptr_cnt when a nested
>     ThreadsListHandle is destroyed.
> 
> The second failure mode is what tripped up my fix for JDK-8231627 so that
> bug fix depends on this bug fix.
> 
> Mach5 Tier[1-3] testing has no regressions (macOSX testing is incomplete at the moment).

One small nit about using Atomic::store(). Otherwise it looks good. Great that you found this and added a test so it won't bite us again.

src/hotspot/share/runtime/threadSMR.cpp line 476:

> 474:   // Clear the hazard ptr so we can go through the fast path below and
> 475:   // acquire a nested stable ThreadsList.
> 476:   _thread->_threads_hazard_ptr = NULL;

Should be Atomic::store()

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

Marked as reviewed by eosterlund (Reviewer).

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


More information about the hotspot-runtime-dev mailing list