src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp

changeset 5820
798522662fcd
parent 5784
190899198332
parent 5811
d55c004e1d4d
child 6131
86e6d691f2e1
equal deleted inserted replaced
5806:100614790c1e 5820:798522662fcd
29 #include "gc_implementation/g1/evacuationInfo.hpp" 29 #include "gc_implementation/g1/evacuationInfo.hpp"
30 #include "gc_implementation/g1/g1AllocRegion.hpp" 30 #include "gc_implementation/g1/g1AllocRegion.hpp"
31 #include "gc_implementation/g1/g1HRPrinter.hpp" 31 #include "gc_implementation/g1/g1HRPrinter.hpp"
32 #include "gc_implementation/g1/g1MonitoringSupport.hpp" 32 #include "gc_implementation/g1/g1MonitoringSupport.hpp"
33 #include "gc_implementation/g1/g1RemSet.hpp" 33 #include "gc_implementation/g1/g1RemSet.hpp"
34 #include "gc_implementation/g1/g1SATBCardTableModRefBS.hpp"
34 #include "gc_implementation/g1/g1YCTypes.hpp" 35 #include "gc_implementation/g1/g1YCTypes.hpp"
35 #include "gc_implementation/g1/heapRegionSeq.hpp" 36 #include "gc_implementation/g1/heapRegionSeq.hpp"
36 #include "gc_implementation/g1/heapRegionSets.hpp" 37 #include "gc_implementation/g1/heapRegionSets.hpp"
37 #include "gc_implementation/shared/hSpaceCounters.hpp" 38 #include "gc_implementation/shared/hSpaceCounters.hpp"
38 #include "gc_implementation/shared/parGCAllocBuffer.hpp" 39 #include "gc_implementation/shared/parGCAllocBuffer.hpp"
789 // Actually do the work of evacuating the collection set. 790 // Actually do the work of evacuating the collection set.
790 void evacuate_collection_set(EvacuationInfo& evacuation_info); 791 void evacuate_collection_set(EvacuationInfo& evacuation_info);
791 792
792 // The g1 remembered set of the heap. 793 // The g1 remembered set of the heap.
793 G1RemSet* _g1_rem_set; 794 G1RemSet* _g1_rem_set;
794 // And it's mod ref barrier set, used to track updates for the above.
795 ModRefBarrierSet* _mr_bs;
796 795
797 // A set of cards that cover the objects for which the Rsets should be updated 796 // A set of cards that cover the objects for which the Rsets should be updated
798 // concurrently after the collection. 797 // concurrently after the collection.
799 DirtyCardQueueSet _dirty_card_queue_set; 798 DirtyCardQueueSet _dirty_card_queue_set;
800 799
1125 // Adaptive size policy. No such thing for g1. 1124 // Adaptive size policy. No such thing for g1.
1126 virtual AdaptiveSizePolicy* size_policy() { return NULL; } 1125 virtual AdaptiveSizePolicy* size_policy() { return NULL; }
1127 1126
1128 // The rem set and barrier set. 1127 // The rem set and barrier set.
1129 G1RemSet* g1_rem_set() const { return _g1_rem_set; } 1128 G1RemSet* g1_rem_set() const { return _g1_rem_set; }
1130 ModRefBarrierSet* mr_bs() const { return _mr_bs; }
1131 1129
1132 unsigned get_gc_time_stamp() { 1130 unsigned get_gc_time_stamp() {
1133 return _gc_time_stamp; 1131 return _gc_time_stamp;
1134 } 1132 }
1135 1133
1343 MemRegion g1_committed() { 1341 MemRegion g1_committed() {
1344 return _g1_committed; 1342 return _g1_committed;
1345 } 1343 }
1346 1344
1347 virtual bool is_in_closed_subset(const void* p) const; 1345 virtual bool is_in_closed_subset(const void* p) const;
1346
1347 G1SATBCardTableModRefBS* g1_barrier_set() {
1348 return (G1SATBCardTableModRefBS*) barrier_set();
1349 }
1348 1350
1349 // This resets the card table to all zeros. It is used after 1351 // This resets the card table to all zeros. It is used after
1350 // a collection pause which used the card table to claim cards. 1352 // a collection pause which used the card table to claim cards.
1351 void cleanUpCardTable(); 1353 void cleanUpCardTable();
1352 1354
1873 class G1ParScanThreadState : public StackObj { 1875 class G1ParScanThreadState : public StackObj {
1874 protected: 1876 protected:
1875 G1CollectedHeap* _g1h; 1877 G1CollectedHeap* _g1h;
1876 RefToScanQueue* _refs; 1878 RefToScanQueue* _refs;
1877 DirtyCardQueue _dcq; 1879 DirtyCardQueue _dcq;
1878 CardTableModRefBS* _ct_bs; 1880 G1SATBCardTableModRefBS* _ct_bs;
1879 G1RemSet* _g1_rem; 1881 G1RemSet* _g1_rem;
1880 1882
1881 G1ParGCAllocBufferContainer _surviving_alloc_buffer; 1883 G1ParGCAllocBufferContainer _surviving_alloc_buffer;
1882 G1ParGCAllocBufferContainer _tenured_alloc_buffer; 1884 G1ParGCAllocBufferContainer _tenured_alloc_buffer;
1883 G1ParGCAllocBufferContainer* _alloc_buffers[GCAllocPurposeCount]; 1885 G1ParGCAllocBufferContainer* _alloc_buffers[GCAllocPurposeCount];
1912 void add_to_alloc_buffer_waste(size_t waste) { _alloc_buffer_waste += waste; } 1914 void add_to_alloc_buffer_waste(size_t waste) { _alloc_buffer_waste += waste; }
1913 1915
1914 void add_to_undo_waste(size_t waste) { _undo_waste += waste; } 1916 void add_to_undo_waste(size_t waste) { _undo_waste += waste; }
1915 1917
1916 DirtyCardQueue& dirty_card_queue() { return _dcq; } 1918 DirtyCardQueue& dirty_card_queue() { return _dcq; }
1917 CardTableModRefBS* ctbs() { return _ct_bs; } 1919 G1SATBCardTableModRefBS* ctbs() { return _ct_bs; }
1918 1920
1919 template <class T> void immediate_rs_update(HeapRegion* from, T* p, int tid) { 1921 template <class T> void immediate_rs_update(HeapRegion* from, T* p, int tid) {
1920 if (!from->is_survivor()) { 1922 if (!from->is_survivor()) {
1921 _g1_rem->par_write_ref(from, p, tid); 1923 _g1_rem->par_write_ref(from, p, tid);
1922 } 1924 }

mercurial