JDK-8221102 : Allow GC threads to participate in threads claiming protocol
  • Type: Bug
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: 13
  • Priority: P2
  • Status: Closed
  • Resolution: Fixed
  • OS: generic
  • CPU: generic
  • Submitted: 2019-03-19
  • Updated: 2019-08-08
  • Resolved: 2019-04-02
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 13
13 b15Fixed
Related Reports
Blocks :  
Relates :  
Relates :  
Relates :  
Sub Tasks
JDK-8221688 :  
JDK-8221875 :  
Description
JDK-8219613 introduced SATB queues for NonJavaThreads. In Shenandoah (and likely G1) the StringDedupThread needs SATB queues. Also, in Shenandoah, all threads' SATB queues get flushed at end of marking using the thread claiming protocol. Currently, only Java threads and the VMThread participate in this, which means that the StringDedupThread will not have its SATB queue flushed at the end.
This change is proposing a mechanism to allow (some) GC threads to participate in thread claiming.
Comments
In fact, it seems very dangerous to do 'manual' claiming, e.g. do thread->claim_oops_do() in a ThreadClosure that is called via Threads::threads_do(). The usual thread claiming only does Java threads and VM thread, and only verifies those. Any other thread would not reliably claim.
19-03-2019