Mercurial > hg > graal-compiler
comparison src/share/vm/gc_implementation/g1/g1RemSet.hpp @ 20504:6948da6d7c13
8052172: Evacuation failure handling in G1 does not evacuate all objects if -XX:-G1DeferredRSUpdate is set
Summary: Remove -XX:-G1DeferredRSUpdate functionality as it is racy. During evacuation failure handling, threads where evacuation failure handling occurred may try to add remembered sets to regions which remembered sets are currently being scanned. The iterator to handle the remembered set scan does not support addition of entries during scan and so may skip valid references.
Reviewed-by: iveresov, brutisso, mgerdin
author | tschatzl |
---|---|
date | Tue, 30 Sep 2014 09:44:36 +0200 |
parents | 7baf47cb97cb |
children | 7848fc12602b |
comparison
equal
deleted
inserted
replaced
20503:fa56205f142c | 20504:6948da6d7c13 |
---|---|
191 // Override: this closure is idempotent. | 191 // Override: this closure is idempotent. |
192 // bool idempotent() { return true; } | 192 // bool idempotent() { return true; } |
193 bool apply_to_weak_ref_discovered_field() { return true; } | 193 bool apply_to_weak_ref_discovered_field() { return true; } |
194 }; | 194 }; |
195 | 195 |
196 class UpdateRSetImmediate: public OopsInHeapRegionClosure { | |
197 private: | |
198 G1RemSet* _g1_rem_set; | |
199 | |
200 template <class T> void do_oop_work(T* p); | |
201 public: | |
202 UpdateRSetImmediate(G1RemSet* rs) : | |
203 _g1_rem_set(rs) {} | |
204 | |
205 virtual void do_oop(narrowOop* p) { do_oop_work(p); } | |
206 virtual void do_oop( oop* p) { do_oop_work(p); } | |
207 }; | |
208 | |
209 | |
210 #endif // SHARE_VM_GC_IMPLEMENTATION_G1_G1REMSET_HPP | 196 #endif // SHARE_VM_GC_IMPLEMENTATION_G1_G1REMSET_HPP |