RFR: JDK-8220671: Initialization race for non-JavaThread PtrQueues

Roman Kennke rkennke at redhat.com
Tue Mar 26 10:43:27 UTC 2019


>> This thread went a bit off. May I propose this for review:
>>
>> http://cr.openjdk.java.net/~rkennke/JDK-8220671/webrev.07/
>>
>> it passes tier1 tests locally, and I submitted it to jdk/submit but that seems to have other hiccups.
>>
>> WDYT?
> 
> I'm still not convinced the activation predicates for the STS joiners
> are correct here.  And I'm not what the right predicate might be or if
> it even exists.
> 
> Also, STS is presently a "GC" thing, and this would insinuate it into
> non-GC code, and affect non-GC threads (such as the WatcherThread and
> the JfrThreadSampler).
> 
> I still prefer using the NonJavaThreadsList_lock in NJT::pre/post_run
> and around the the relevant state changes, such as setting the SATB
> qset's _all_active member.

Ok, let's go with your patch:

http://cr.openjdk.java.net/~kbarrett/8220671/use_njtlock.00/

I've tested it against my stress test and Shenandoah test suite, and all 
seems fine.

Is the extra locking around assignment of global state needed? I think 
the locking in threads_do() is sufficient?

Roman


More information about the hotspot-gc-dev mailing list