RFR: JDK-8151336: Root region scanning should be cancelled and disabled when the ConcurrentMarkThread::run_service() exits

Thomas Schatzl thomas.schatzl at oracle.com
Wed Mar 16 11:46:16 UTC 2016

Hi Bengt,

On Tue, 2016-03-15 at 16:11 +0100, Bengt Rutisson wrote:
> Hi again everyone,
> Here's an updated webrev:
> http://cr.openjdk.java.net/~brutisso/8151336/webrev.01
> I removed the extra _has_terminated state and am instead using the 
> ConcurrentMarkThread::should_terminate() state to make sure we don't 
> start a new initial mark if the concurrent mark thread is about to 
> terminate or has already terminated.
> The _should_terminate state is set in ConcurrentGCThread::stop()
> where 
> we first take the Terminator_lock with a safepoint check. So, we
> should 
> be able to rely on this value inside of
> do_collection_pause_at_safepoint().

  I would prefer if the _cmThread->should_terminate() condition should
be inside decide_on_conc_mark_initiation(). It seems to be a quite
generic condition that should apply anywhere.

Although decide_on_conc_mark_initiation() has only this caller, this
may cause bugs in the future if keeping it there.


More information about the hotspot-gc-dev mailing list