comparison src/share/vm/gc_implementation/g1/g1CollectedHeap.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
comparison
equal deleted inserted replaced
3972:4f93f0d00802 3973:663cb89032b1
820 // Do any necessary cleanup for evacuation-failure handling data 820 // Do any necessary cleanup for evacuation-failure handling data
821 // structures. 821 // structures.
822 void finalize_for_evac_failure(); 822 void finalize_for_evac_failure();
823 823
824 // An attempt to evacuate "obj" has failed; take necessary steps. 824 // An attempt to evacuate "obj" has failed; take necessary steps.
825 oop handle_evacuation_failure_par(OopsInHeapRegionClosure* cl, oop obj); 825 oop handle_evacuation_failure_par(OopsInHeapRegionClosure* cl, oop obj,
826 bool should_mark_root);
826 void handle_evacuation_failure_common(oop obj, markOop m); 827 void handle_evacuation_failure_common(oop obj, markOop m);
827 828
828 // Instance of the concurrent mark is_alive closure for embedding 829 // Instance of the concurrent mark is_alive closure for embedding
829 // into the reference processor as the is_alive_non_header. This 830 // into the reference processor as the is_alive_non_header. This
830 // prevents unnecessary additions to the discovered lists during 831 // prevents unnecessary additions to the discovered lists during