116 void scrub(BitMap* region_bm, BitMap* card_bm);
117
118 // Like the above, but assumes is called in parallel: "worker_num" is the
119 // parallel thread id of the current thread, and "claim_val" is the
120 // value that should be used to claim heap regions.
121 void scrub_par(BitMap* region_bm, BitMap* card_bm,
122 uint worker_num, int claim_val);
123
124 // Refine the card corresponding to "card_ptr".
125 // If check_for_refs_into_cset is true, a true result is returned
126 // if the given card contains oops that have references into the
127 // current collection set.
128 virtual bool refine_card(jbyte* card_ptr,
129 int worker_i,
130 bool check_for_refs_into_cset);
131
132 // Print accumulated summary info from the start of the VM.
133 virtual void print_summary_info();
134
135 // Print accumulated summary info from the last time called.
136 virtual void print_periodic_summary_info();
137
138 // Prepare remembered set for verification.
139 virtual void prepare_for_verify();
140
141 size_t conc_refine_cards() const {
142 return _conc_refine_cards;
143 }
144 };
145
146 class CountNonCleanMemRegionClosure: public MemRegionClosure {
147 G1CollectedHeap* _g1;
148 int _n;
149 HeapWord* _start_first;
150 public:
151 CountNonCleanMemRegionClosure(G1CollectedHeap* g1) :
152 _g1(g1), _n(0), _start_first(NULL)
153 {}
154 void do_MemRegion(MemRegion mr);
155 int n() { return _n; };
156 HeapWord* start_first() { return _start_first; }
|
116 void scrub(BitMap* region_bm, BitMap* card_bm);
117
118 // Like the above, but assumes is called in parallel: "worker_num" is the
119 // parallel thread id of the current thread, and "claim_val" is the
120 // value that should be used to claim heap regions.
121 void scrub_par(BitMap* region_bm, BitMap* card_bm,
122 uint worker_num, int claim_val);
123
124 // Refine the card corresponding to "card_ptr".
125 // If check_for_refs_into_cset is true, a true result is returned
126 // if the given card contains oops that have references into the
127 // current collection set.
128 virtual bool refine_card(jbyte* card_ptr,
129 int worker_i,
130 bool check_for_refs_into_cset);
131
132 // Print accumulated summary info from the start of the VM.
133 virtual void print_summary_info();
134
135 // Print accumulated summary info from the last time called.
136 virtual void print_periodic_summary_info(const char* header);
137
138 // Prepare remembered set for verification.
139 virtual void prepare_for_verify();
140
141 size_t conc_refine_cards() const {
142 return _conc_refine_cards;
143 }
144 };
145
146 class CountNonCleanMemRegionClosure: public MemRegionClosure {
147 G1CollectedHeap* _g1;
148 int _n;
149 HeapWord* _start_first;
150 public:
151 CountNonCleanMemRegionClosure(G1CollectedHeap* g1) :
152 _g1(g1), _n(0), _start_first(NULL)
153 {}
154 void do_MemRegion(MemRegion mr);
155 int n() { return _n; };
156 HeapWord* start_first() { return _start_first; }
|