RFR(S): 8040803: G1: Concurrent mark hangs when mark stack overflows

Per Liden per.liden at oracle.com
Wed Apr 30 13:04:11 UTC 2014


Hi,

Could I please have a couple of reviews in this bug fix:

Summary: G1's concurrent marking can potentially hang forever if the 
global mark stack overflows and immediately after that a Full GC 
happens, which tries to abort the marking. The reason is that there's a 
race between detecting the overflow situation and detecting the abort 
signal. Threads detecting the overflow situation first will go into the 
overflow protocol and wait on a barrier for all threads to reach this 
state. However, threads detecting the abort signal first will terminate 
and never participate in the barrier.

This patch introduces an abort state and function on the 
WorkGangBarrierSync class, to unblock any threads waiting for the 
barrier to complete when the concurrent mark is aborted.

Bug: https://bugs.openjdk.java.net/browse/JDK-8040803
Webrev: http://cr.openjdk.java.net/~pliden/8040803/webrev.0/

/Per



More information about the hotspot-gc-dev mailing list