3107 size_t bytes_before = capacity();
3108 // No need for an ergo logging here,
3109 // expansion_amount() does this when it returns a value > 0.
3110 double expand_ms;
3111 if (!expand(expand_bytes, _workers, &expand_ms)) {
3112 // We failed to expand the heap. Cannot do anything about it.
3113 }
3114 g1_policy()->phase_times()->record_expand_heap_time(expand_ms);
3115 }
3116 }
3117
3118 // We redo the verification but now wrt to the new CSet which
3119 // has just got initialized after the previous CSet was freed.
3120 _cm->verify_no_cset_oops();
3121
3122 // This timing is only used by the ergonomics to handle our pause target.
3123 // It is unclear why this should not include the full pause. We will
3124 // investigate this in CR 7178365.
3125 double sample_end_time_sec = os::elapsedTime();
3126 double pause_time_ms = (sample_end_time_sec - sample_start_time_sec) * MILLIUNITS;
3127 size_t total_cards_scanned = g1_policy()->phase_times()->sum_thread_work_items(G1GCPhaseTimes::ScanRS, G1GCPhaseTimes::ScannedCards);
3128 g1_policy()->record_collection_pause_end(pause_time_ms, total_cards_scanned, heap_used_bytes_before_gc);
3129
3130 evacuation_info.set_collectionset_used_before(collection_set()->bytes_used_before());
3131 evacuation_info.set_bytes_copied(g1_policy()->bytes_copied_during_gc());
3132
3133 if (VerifyRememberedSets) {
3134 log_info(gc, verify)("[Verifying RemSets after GC]");
3135 VerifyRegionRemSetClosure v_cl;
3136 heap_region_iterate(&v_cl);
3137 }
3138
3139 _verifier->verify_after_gc();
3140 _verifier->check_bitmaps("GC End");
3141
3142 assert(!ref_processor_stw()->discovery_enabled(), "Postcondition");
3143 ref_processor_stw()->verify_no_references_recorded();
3144
3145 // CM reference discovery will be re-enabled if necessary.
3146 }
3147
|
3107 size_t bytes_before = capacity();
3108 // No need for an ergo logging here,
3109 // expansion_amount() does this when it returns a value > 0.
3110 double expand_ms;
3111 if (!expand(expand_bytes, _workers, &expand_ms)) {
3112 // We failed to expand the heap. Cannot do anything about it.
3113 }
3114 g1_policy()->phase_times()->record_expand_heap_time(expand_ms);
3115 }
3116 }
3117
3118 // We redo the verification but now wrt to the new CSet which
3119 // has just got initialized after the previous CSet was freed.
3120 _cm->verify_no_cset_oops();
3121
3122 // This timing is only used by the ergonomics to handle our pause target.
3123 // It is unclear why this should not include the full pause. We will
3124 // investigate this in CR 7178365.
3125 double sample_end_time_sec = os::elapsedTime();
3126 double pause_time_ms = (sample_end_time_sec - sample_start_time_sec) * MILLIUNITS;
3127 size_t total_cards_scanned = g1_policy()->phase_times()->sum_thread_work_items(G1GCPhaseTimes::ScanRS, G1GCPhaseTimes::ScanRSScannedCards);
3128 g1_policy()->record_collection_pause_end(pause_time_ms, total_cards_scanned, heap_used_bytes_before_gc);
3129
3130 evacuation_info.set_collectionset_used_before(collection_set()->bytes_used_before());
3131 evacuation_info.set_bytes_copied(g1_policy()->bytes_copied_during_gc());
3132
3133 if (VerifyRememberedSets) {
3134 log_info(gc, verify)("[Verifying RemSets after GC]");
3135 VerifyRegionRemSetClosure v_cl;
3136 heap_region_iterate(&v_cl);
3137 }
3138
3139 _verifier->verify_after_gc();
3140 _verifier->check_bitmaps("GC End");
3141
3142 assert(!ref_processor_stw()->discovery_enabled(), "Postcondition");
3143 ref_processor_stw()->verify_no_references_recorded();
3144
3145 // CM reference discovery will be re-enabled if necessary.
3146 }
3147
|