comparison src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp @ 1166:7b0e9cba0307

6896647: card marks can be deferred too long Summary: Deferred card marks are now flushed during the gc prologue. Parallel[Scavege,OldGC] and SerialGC no longer defer card marks generated by COMPILER2 as a result of ReduceInitialCardMarks. For these cases, introduced a diagnostic option to defer the card marks, only for the purposes of testing and diagnostics. CMS and G1 continue to defer card marks. Potential performance concern related to single-threaded flushing of deferred card marks in the gc prologue will be addressed in the future. Reviewed-by: never, johnc
author ysr
date Wed, 13 Jan 2010 15:26:39 -0800
parents ed52bcc32739
children 34fb2662f6c2
comparison
equal deleted inserted replaced
1165:2dd52dea6d28 1166:7b0e9cba0307
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 return true;
1008 } 1008 }
1009 1009
1010 virtual bool card_mark_must_follow_store() const {
1011 return true;
1012 }
1013
1010 bool is_in_young(oop obj) { 1014 bool is_in_young(oop obj) {
1011 HeapRegion* hr = heap_region_containing(obj); 1015 HeapRegion* hr = heap_region_containing(obj);
1012 return hr != NULL && hr->is_young(); 1016 return hr != NULL && hr->is_young();
1013 } 1017 }
1014 1018