Mercurial > hg > graal-compiler
diff src/share/vm/gc_implementation/g1/g1OopClosures.hpp @ 3973:663cb89032b1
7092412: G1: Some roots not marked during an initial mark that gets an evacuation failure
Summary: As a result of the changes for 7080389, an evacuation failure during an initial mark pause may result in some root objects not being marked. Pass whether the caller is a root scanning closure into the evacuation failure handling code so that the thread that successfully forwards an object to itself also marks the object.
Reviewed-by: ysr, brutisso, tonyp
author | johnc |
---|---|
date | Tue, 20 Sep 2011 15:39:17 -0700 |
parents | eeae91c9baba |
children | 4dfb2df418f2 |
line wrap: on
line diff
--- a/src/share/vm/gc_implementation/g1/g1OopClosures.hpp Tue Sep 20 09:59:59 2011 -0400 +++ b/src/share/vm/gc_implementation/g1/g1OopClosures.hpp Tue Sep 20 15:39:17 2011 -0700 @@ -105,7 +105,8 @@ G1ParScanClosure *_scanner; protected: template <class T> void mark_object(T* p); - oop copy_to_survivor_space(oop obj, bool should_mark_copy); + oop copy_to_survivor_space(oop obj, bool should_mark_root, + bool should_mark_copy); public: G1ParCopyHelper(G1CollectedHeap* g1, G1ParScanThreadState* par_scan_state, G1ParScanClosure *scanner) :