comparison src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp @ 23029:0f8f1250fed5

8078023: verify_no_cset_oops found reclaimed humongous object in SATB buffer Summary: Removed no longer valid checking of SATB buffers Reviewed-by: jmasa, pliden
author kbarrett
date Wed, 22 Apr 2015 14:06:49 -0400
parents b7c8142a9e0b
children ea47136e6ea4
comparison
equal deleted inserted replaced
23028:b5d14ef905b5 23029:0f8f1250fed5
4091 register_humongous_regions_with_in_cset_fast_test(); 4091 register_humongous_regions_with_in_cset_fast_test();
4092 4092
4093 assert(check_cset_fast_test(), "Inconsistency in the InCSetState table."); 4093 assert(check_cset_fast_test(), "Inconsistency in the InCSetState table.");
4094 4094
4095 _cm->note_start_of_gc(); 4095 _cm->note_start_of_gc();
4096 // We should not verify the per-thread SATB buffers given that 4096 // We call this after finalize_cset() to
4097 // we have not filtered them yet (we'll do so during the
4098 // GC). We also call this after finalize_cset() to
4099 // ensure that the CSet has been finalized. 4097 // ensure that the CSet has been finalized.
4100 _cm->verify_no_cset_oops(true /* verify_stacks */, 4098 _cm->verify_no_cset_oops();
4101 true /* verify_enqueued_buffers */,
4102 false /* verify_thread_buffers */,
4103 true /* verify_fingers */);
4104 4099
4105 if (_hr_printer.is_active()) { 4100 if (_hr_printer.is_active()) {
4106 HeapRegion* hr = g1_policy()->collection_set(); 4101 HeapRegion* hr = g1_policy()->collection_set();
4107 while (hr != NULL) { 4102 while (hr != NULL) {
4108 _hr_printer.cset(hr); 4103 _hr_printer.cset(hr);
4120 // Initialize the GC alloc regions. 4115 // Initialize the GC alloc regions.
4121 _allocator->init_gc_alloc_regions(evacuation_info); 4116 _allocator->init_gc_alloc_regions(evacuation_info);
4122 4117
4123 // Actually do the work... 4118 // Actually do the work...
4124 evacuate_collection_set(evacuation_info); 4119 evacuate_collection_set(evacuation_info);
4125
4126 // We do this to mainly verify the per-thread SATB buffers
4127 // (which have been filtered by now) since we didn't verify
4128 // them earlier. No point in re-checking the stacks / enqueued
4129 // buffers given that the CSet has not changed since last time
4130 // we checked.
4131 _cm->verify_no_cset_oops(false /* verify_stacks */,
4132 false /* verify_enqueued_buffers */,
4133 true /* verify_thread_buffers */,
4134 true /* verify_fingers */);
4135 4120
4136 free_collection_set(g1_policy()->collection_set(), evacuation_info); 4121 free_collection_set(g1_policy()->collection_set(), evacuation_info);
4137 4122
4138 eagerly_reclaim_humongous_regions(); 4123 eagerly_reclaim_humongous_regions();
4139 4124
4213 } 4198 }
4214 } 4199 }
4215 4200
4216 // We redo the verification but now wrt to the new CSet which 4201 // We redo the verification but now wrt to the new CSet which
4217 // has just got initialized after the previous CSet was freed. 4202 // has just got initialized after the previous CSet was freed.
4218 _cm->verify_no_cset_oops(true /* verify_stacks */, 4203 _cm->verify_no_cset_oops();
4219 true /* verify_enqueued_buffers */,
4220 true /* verify_thread_buffers */,
4221 true /* verify_fingers */);
4222 _cm->note_end_of_gc(); 4204 _cm->note_end_of_gc();
4223 4205
4224 // This timing is only used by the ergonomics to handle our pause target. 4206 // This timing is only used by the ergonomics to handle our pause target.
4225 // It is unclear why this should not include the full pause. We will 4207 // It is unclear why this should not include the full pause. We will
4226 // investigate this in CR 7178365. 4208 // investigate this in CR 7178365.