Mercurial > hg > graal-jvmci-8
comparison src/share/vm/gc_implementation/g1/g1OopClosures.hpp @ 4837:eff609af17d7
7127706: G1: re-enable survivors during the initial-mark pause
Summary: Re-enable survivors during the initial-mark pause. Afterwards, the concurrent marking threads have to scan them and mark everything reachable from them. The next GC will have to wait for the survivors to be scanned.
Reviewed-by: brutisso, johnc
author | tonyp |
---|---|
date | Wed, 25 Jan 2012 12:58:23 -0500 |
parents | d30fa85f9994 |
children | b4ebad3520bb |
comparison
equal
deleted
inserted
replaced
4836:d30fa85f9994 | 4837:eff609af17d7 |
---|---|
218 int out_of_region() { return _out_of_region; } | 218 int out_of_region() { return _out_of_region; } |
219 }; | 219 }; |
220 | 220 |
221 // Closure for iterating over object fields during concurrent marking | 221 // Closure for iterating over object fields during concurrent marking |
222 class G1CMOopClosure : public OopClosure { | 222 class G1CMOopClosure : public OopClosure { |
223 private: | |
223 G1CollectedHeap* _g1h; | 224 G1CollectedHeap* _g1h; |
224 ConcurrentMark* _cm; | 225 ConcurrentMark* _cm; |
225 CMTask* _task; | 226 CMTask* _task; |
226 public: | 227 public: |
227 G1CMOopClosure(G1CollectedHeap* g1h, ConcurrentMark* cm, CMTask* task); | 228 G1CMOopClosure(G1CollectedHeap* g1h, ConcurrentMark* cm, CMTask* task); |
228 template <class T> void do_oop_nv(T* p); | 229 template <class T> void do_oop_nv(T* p); |
229 virtual void do_oop( oop* p) { do_oop_nv(p); } | 230 virtual void do_oop( oop* p) { do_oop_nv(p); } |
230 virtual void do_oop(narrowOop* p) { do_oop_nv(p); } | 231 virtual void do_oop(narrowOop* p) { do_oop_nv(p); } |
231 }; | 232 }; |
232 | 233 |
234 // Closure to scan the root regions during concurrent marking | |
235 class G1RootRegionScanClosure : public OopClosure { | |
236 private: | |
237 G1CollectedHeap* _g1h; | |
238 ConcurrentMark* _cm; | |
239 uint _worker_id; | |
240 public: | |
241 G1RootRegionScanClosure(G1CollectedHeap* g1h, ConcurrentMark* cm, | |
242 uint worker_id) : | |
243 _g1h(g1h), _cm(cm), _worker_id(worker_id) { } | |
244 template <class T> void do_oop_nv(T* p); | |
245 virtual void do_oop( oop* p) { do_oop_nv(p); } | |
246 virtual void do_oop(narrowOop* p) { do_oop_nv(p); } | |
247 }; | |
248 | |
233 #endif // SHARE_VM_GC_IMPLEMENTATION_G1_G1OOPCLOSURES_HPP | 249 #endif // SHARE_VM_GC_IMPLEMENTATION_G1_G1OOPCLOSURES_HPP |