8014022: G1: Non Java threads should lock the shared SATB queue lock without safepoint checks.
Reviewed-by: tschatzl, brutisso, jmasa, ysr
Contributed-by: per.liden@oracle.com
--- a/hotspot/src/share/vm/gc_implementation/g1/g1SATBCardTableModRefBS.cpp Fri Jun 28 18:28:17 2013 +0200
+++ b/hotspot/src/share/vm/gc_implementation/g1/g1SATBCardTableModRefBS.cpp Sun Jun 30 21:42:07 2013 +0200
@@ -47,7 +47,7 @@
JavaThread* jt = (JavaThread*)thr;
jt->satb_mark_queue().enqueue(pre_val);
} else {
- MutexLocker x(Shared_SATB_Q_lock);
+ MutexLockerEx x(Shared_SATB_Q_lock, Mutex::_no_safepoint_check_flag);
JavaThread::satb_mark_queue_set().shared_satb_queue()->enqueue(pre_val);
}
}