8232588: G1 concurrent System.gc can return early or late

8233279: G1: GCLocker GC with +GCLockerInvokesConcurrent spins while cycle in progress

Refactor G1CH::try_collect and fix bugs with concurrent collections.

Reviewed-by: tschatzl, sjohanss
This commit is contained in:
Kim Barrett 2019-11-13 18:00:30 -05:00
parent 9ad86a68cc
commit 19bed24b1f
9 changed files with 289 additions and 213 deletions

View file

@ -68,6 +68,7 @@ extern Monitor* CGC_lock; // used for coordination betwee
// fore- & background GC threads.
extern Monitor* STS_lock; // used for joining/leaving SuspendibleThreadSet.
extern Monitor* FullGCCount_lock; // in support of "concurrent" full gc
extern Monitor* G1OldGCCount_lock; // in support of "concurrent" full gc
extern Monitor* DirtyCardQ_CBL_mon; // Protects dirty card Q
// completed buffer queue.
extern Mutex* Shared_DirtyCardQ_lock; // Lock protecting dirty card