14 Commits

Author SHA1 Message Date
John Cuthbertson
e5344b854c 6978187: G1: assert(ParallelGCThreads> 1 || n_yielded() == _hrrs->occupied()) strikes again
An evacuation failure while copying the roots caused an object, A, to be forwarded to itself. During the subsequent RSet updating a reference to A was processed causing the reference to be added to the RSet of A's heap region. As a result of adding to the remembered set we ran into the issue described in 6930581 - the sparse table expanded and the RSet scanning code walked the cards in one instance of RHashTable (_cur) while the occupied() counts the cards in the expanded table (_next).

Reviewed-by: tonyp, iveresov
2010-11-16 14:07:33 -08:00
John Cuthbertson
02bad20969 6971296: G1: simplify G1RemSet class hierarchy
Remove G1RemSet base class and StupidG1RemSet class; rename HRInto_G1RemSet to just G1RemSet.

Reviewed-by: ysr, tonyp
2010-10-12 09:36:48 -07:00
John Cuthbertson
f8eed77f36 6930581: G1: assert(ParallelGCThreads > 1 || n_yielded() == _hrrs->occupied(),"Should have yielded all the .
During RSet updating, when ParallelGCThreads is zero, references that point into the collection set are added directly the referenced region's RSet. This can cause the sparse table in the RSet to expand. RSet scanning and the "occupied" routine will then operate on different instances of the sparse table causing the assert to trip. This may also cause some cards added post expansion to be missed during RSet scanning. When ParallelGCThreads is non-zero such references are recorded on the "references to be scanned" queue and the card containing the reference is recorded in a dirty card queue for use in the event of an evacuation failure. Employ the parallel code in the serial case to avoid expanding the RSets of regions in the collection set.

Reviewed-by: iveresov, ysr, tonyp
2010-08-06 10:17:21 -07:00
John Cuthbertson
3a2b2b4fd8 6814437: G1: remove the _new_refs array
The per-worker _new_refs array is used to hold references that point into the collection set. It is populated during RSet updating and subsequently processed. In the event of an evacuation failure it processed again to recreate the RSets of regions in the collection set. Remove the per-worker _new_refs array by processing the references directly. Use a DirtyCardQueue to hold the cards containing the references so that the RSets of regions in the collection set can be recreated when handling an evacuation failure.

Reviewed-by: iveresov, jmasa, tonyp
2010-08-02 12:51:43 -07:00
Erik Trimble
ba7c173659 6941466: Oracle rebranding changes for Hotspot repositories
Change all the Sun copyrights to Oracle copyright

Reviewed-by: ohair
2010-05-27 19:08:38 -07:00
John Cuthbertson
f1cbffdd3e 6819077: G1: first GC thread coming late into the GC
The first worker thread is delayed when entering the GC because it clears the card count table that is used in identifying hot cards. Replace the card count table with a dynamically sized evicting hash table that includes an epoch based counter.

Reviewed-by: iveresov, tonyp
2009-08-04 16:00:17 -07:00
Y. Srinivas Ramakrishna
075c1335cb 6700789: G1: Enable use of compressed oops with G1 heaps
Modifications to G1 so as to allow the use of compressed oops.

Reviewed-by: apetrusenko, coleenp, jmasa, kvn, never, phh, tonyp
2009-07-14 15:40:39 -07:00
Igor Veresov
8c764e214c 6484957: G1: parallel concurrent refinement
6826318: G1: remove traversal-based refinement code

Removed traversal-based refinement code as it's no longer used. Made the concurrent refinement (queue-based) parallel.

Reviewed-by: tonyp
2009-05-11 16:30:56 -07:00
Erik Trimble
8d6035660e Merge 2009-03-12 18:16:36 -07:00
Andrey Petrusenko
13c13c7289 6760309: G1: update remembered sets during Full GCs
Reviewed-by: iveresov, tonyp
2009-03-10 00:47:05 -07:00
Xiomara Jayasena
2be2e027b0 6814575: Update copyright year
Update copyright for files that have been modified in 2009, up to 03/09

Reviewed-by: katleman, tbell, ohair
2009-03-09 13:28:46 -07:00
Igor Veresov
416d70bf91 6720309: G1: don't synchronously update RSet during evacuation pauses
6720334: G1: don't update RSets of collection set regions during an evacuation pause

Introduced a deferred update mechanism for delaying the rset updates during the collection pause

Reviewed-by: apetrusenko, tonyp
2009-03-06 13:50:14 -08:00
Andrey Petrusenko
a7da5440dd 6700941: G1: allocation spec missing for some G1 classes
Reviewed-by: tonyp
2009-02-10 18:39:09 +03:00
Y. Srinivas Ramakrishna
18f3386a98 6711316: Open source the Garbage-First garbage collector
First mercurial integration of the code for the Garbage-First garbage collector.

Reviewed-by: apetrusenko, iveresov, jmasa, sgoldman, tonyp, ysr
2008-06-05 15:57:56 -07:00