mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-21 11:34:38 +02:00
6819065: G1: eliminate high serial card table clearing time
Reviewed-by: iveresov, tonyp
This commit is contained in:
parent
4f6c7e4a14
commit
b7eda61fb6
5 changed files with 126 additions and 4 deletions
|
@ -158,6 +158,7 @@ class G1CollectedHeap : public SharedHeap {
|
|||
friend class RegionSorter;
|
||||
friend class CountRCClosure;
|
||||
friend class EvacPopObjClosure;
|
||||
friend class G1ParCleanupCTTask;
|
||||
|
||||
// Other related classes.
|
||||
friend class G1MarkSweep;
|
||||
|
@ -1191,6 +1192,16 @@ public:
|
|||
ConcurrentMark* concurrent_mark() const { return _cm; }
|
||||
ConcurrentG1Refine* concurrent_g1_refine() const { return _cg1r; }
|
||||
|
||||
// The dirty cards region list is used to record a subset of regions
|
||||
// whose cards need clearing. The list if populated during the
|
||||
// remembered set scanning and drained during the card table
|
||||
// cleanup. Although the methods are reentrant, population/draining
|
||||
// phases must not overlap. For synchronization purposes the last
|
||||
// element on the list points to itself.
|
||||
HeapRegion* _dirty_cards_region_list;
|
||||
void push_dirty_cards_region(HeapRegion* hr);
|
||||
HeapRegion* pop_dirty_cards_region();
|
||||
|
||||
public:
|
||||
void stop_conc_gc_threads();
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue