1273 increment_old_marking_cycles_started();
1274
1275 assert(used() == recalculate_used(), "Should be equal");
1276
1277 _verifier->verify_before_gc();
1278
1279 _verifier->check_bitmaps("Full GC Start");
1280 pre_full_gc_dump(gc_timer);
1281
1282 #if defined(COMPILER2) || INCLUDE_JVMCI
1283 DerivedPointerTable::clear();
1284 #endif
1285
1286 // Disable discovery and empty the discovered lists
1287 // for the CM ref processor.
1288 ref_processor_cm()->disable_discovery();
1289 ref_processor_cm()->abandon_partial_discovery();
1290 ref_processor_cm()->verify_no_references_recorded();
1291
1292 // Abandon current iterations of concurrent marking and concurrent
1293 // refinement, if any are in progress. We have to do this before
1294 // wait_until_scan_finished() below.
1295 concurrent_mark()->abort();
1296
1297 // Make sure we'll choose a new allocation region afterwards.
1298 _allocator->release_mutator_alloc_region();
1299 _allocator->abandon_gc_alloc_regions();
1300 g1_rem_set()->cleanupHRRS();
1301
1302 // We may have added regions to the current incremental collection
1303 // set between the last GC or pause and now. We need to clear the
1304 // incremental collection set and then start rebuilding it afresh
1305 // after this full GC.
1306 abandon_collection_set(g1_policy()->inc_cset_head());
1307 g1_policy()->clear_incremental_cset();
1308 g1_policy()->stop_incremental_cset_building();
1309
1310 tear_down_region_sets(false /* free_list_only */);
1311 collector_state()->set_gcs_are_young(true);
1312
1313 // See the comments in g1CollectedHeap.hpp and
1314 // G1CollectedHeap::ref_processing_init() about
|
1273 increment_old_marking_cycles_started();
1274
1275 assert(used() == recalculate_used(), "Should be equal");
1276
1277 _verifier->verify_before_gc();
1278
1279 _verifier->check_bitmaps("Full GC Start");
1280 pre_full_gc_dump(gc_timer);
1281
1282 #if defined(COMPILER2) || INCLUDE_JVMCI
1283 DerivedPointerTable::clear();
1284 #endif
1285
1286 // Disable discovery and empty the discovered lists
1287 // for the CM ref processor.
1288 ref_processor_cm()->disable_discovery();
1289 ref_processor_cm()->abandon_partial_discovery();
1290 ref_processor_cm()->verify_no_references_recorded();
1291
1292 // Abandon current iterations of concurrent marking and concurrent
1293 // refinement, if any are in progress.
1294 concurrent_mark()->abort();
1295
1296 // Make sure we'll choose a new allocation region afterwards.
1297 _allocator->release_mutator_alloc_region();
1298 _allocator->abandon_gc_alloc_regions();
1299 g1_rem_set()->cleanupHRRS();
1300
1301 // We may have added regions to the current incremental collection
1302 // set between the last GC or pause and now. We need to clear the
1303 // incremental collection set and then start rebuilding it afresh
1304 // after this full GC.
1305 abandon_collection_set(g1_policy()->inc_cset_head());
1306 g1_policy()->clear_incremental_cset();
1307 g1_policy()->stop_incremental_cset_building();
1308
1309 tear_down_region_sets(false /* free_list_only */);
1310 collector_state()->set_gcs_are_young(true);
1311
1312 // See the comments in g1CollectedHeap.hpp and
1313 // G1CollectedHeap::ref_processing_init() about
|