hotspot/src/share/vm/gc/g1/g1EvacFailure.cpp
changeset 46258 d26ebd7e2f10
parent 39698 4016de4e596b
child 46590 cd27cb97655c
equal deleted inserted replaced
46257:3e95288ce4ca 46258:d26ebd7e2f10
   214 
   214 
   215     return rspc.marked_bytes();
   215     return rspc.marked_bytes();
   216   }
   216   }
   217 
   217 
   218   bool doHeapRegion(HeapRegion *hr) {
   218   bool doHeapRegion(HeapRegion *hr) {
   219     bool during_initial_mark = _g1h->collector_state()->during_initial_mark_pause();
       
   220     bool during_conc_mark = _g1h->collector_state()->mark_in_progress();
       
   221 
       
   222     assert(!hr->is_pinned(), "Unexpected pinned region at index %u", hr->hrm_index());
   219     assert(!hr->is_pinned(), "Unexpected pinned region at index %u", hr->hrm_index());
   223     assert(hr->in_collection_set(), "bad CS");
   220     assert(hr->in_collection_set(), "bad CS");
   224 
   221 
   225     if (_hrclaimer->claim_region(hr->hrm_index())) {
   222     if (_hrclaimer->claim_region(hr->hrm_index())) {
   226       if (hr->evacuation_failed()) {
   223       if (hr->evacuation_failed()) {
       
   224         bool during_initial_mark = _g1h->collector_state()->during_initial_mark_pause();
       
   225         bool during_conc_mark = _g1h->collector_state()->mark_in_progress();
       
   226 
   227         hr->note_self_forwarding_removal_start(during_initial_mark,
   227         hr->note_self_forwarding_removal_start(during_initial_mark,
   228                                                during_conc_mark);
   228                                                during_conc_mark);
   229         _g1h->verifier()->check_bitmaps("Self-Forwarding Ptr Removal", hr);
   229         _g1h->verifier()->check_bitmaps("Self-Forwarding Ptr Removal", hr);
   230 
   230 
   231         hr->reset_bot();
   231         hr->reset_bot();
   232 
   232 
   233         size_t live_bytes = remove_self_forward_ptr_by_walking_hr(hr, during_initial_mark);
   233         size_t live_bytes = remove_self_forward_ptr_by_walking_hr(hr, during_initial_mark);
   234 
   234 
   235         hr->rem_set()->clean_strong_code_roots(hr);
   235         hr->rem_set()->clean_strong_code_roots(hr);
   236 
   236 
   237         hr->note_self_forwarding_removal_end(during_initial_mark,
   237         hr->note_self_forwarding_removal_end(live_bytes);
   238                                              during_conc_mark,
       
   239                                              live_bytes);
       
   240       }
   238       }
   241     }
   239     }
   242     return false;
   240     return false;
   243   }
   241   }
   244 };
   242 };