src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp

changeset 1629
34fb2662f6c2
parent 1601
7b0e9cba0307
child 1696
0414c1049f15
equal deleted inserted replaced
1628:c81fa70144aa 1629:34fb2662f6c2
1002 // of this implementation depends crucially on being able to 1002 // of this implementation depends crucially on being able to
1003 // answer very efficiently in constant time whether a piece of 1003 // answer very efficiently in constant time whether a piece of
1004 // storage in the heap comes from a young region or not. 1004 // storage in the heap comes from a young region or not.
1005 // See ReduceInitialCardMarks. 1005 // See ReduceInitialCardMarks.
1006 virtual bool can_elide_tlab_store_barriers() const { 1006 virtual bool can_elide_tlab_store_barriers() const {
1007 return true; 1007 // 6920090: Temporarily disabled, because of lingering
1008 // instabilities related to RICM with G1. In the
1009 // interim, the option ReduceInitialCardMarksForG1
1010 // below is left solely as a debugging device at least
1011 // until 6920109 fixes the instabilities.
1012 return ReduceInitialCardMarksForG1;
1008 } 1013 }
1009 1014
1010 virtual bool card_mark_must_follow_store() const { 1015 virtual bool card_mark_must_follow_store() const {
1011 return true; 1016 return true;
1012 } 1017 }
1024 // G1 does not have any "young" objects, should not elide 1029 // G1 does not have any "young" objects, should not elide
1025 // the rs logging barrier and so should always answer false below. 1030 // the rs logging barrier and so should always answer false below.
1026 // However, non-generational G1 (-XX:-G1Gen) appears to have 1031 // However, non-generational G1 (-XX:-G1Gen) appears to have
1027 // bit-rotted so was not tested below. 1032 // bit-rotted so was not tested below.
1028 virtual bool can_elide_initializing_store_barrier(oop new_obj) { 1033 virtual bool can_elide_initializing_store_barrier(oop new_obj) {
1034 // Re 6920090, 6920109 above.
1035 assert(ReduceInitialCardMarksForG1, "Else cannot be here");
1029 assert(G1Gen || !is_in_young(new_obj), 1036 assert(G1Gen || !is_in_young(new_obj),
1030 "Non-generational G1 should never return true below"); 1037 "Non-generational G1 should never return true below");
1031 return is_in_young(new_obj); 1038 return is_in_young(new_obj);
1032 } 1039 }
1033 1040

mercurial