583
584 // Update the structure of the eden. With NUMA-eden CPU hotplugging or offlining can
585 // cause the change of the heap layout. Make sure eden is reshaped if that's the case.
586 // Also update() will case adaptive NUMA chunk resizing.
587 assert(young_gen->eden_space()->is_empty(), "eden space should be empty now");
588 young_gen->eden_space()->update();
589
590 heap->gc_policy_counters()->update_counters();
591
592 heap->resize_all_tlabs();
593
594 assert(young_gen->to_space()->is_empty(), "to space should be empty now");
595 }
596
597 #if defined(COMPILER2) || INCLUDE_JVMCI
598 DerivedPointerTable::update_pointers();
599 #endif
600
601 NOT_PRODUCT(reference_processor()->verify_no_references_recorded());
602
603 {
604 GCTraceTime(Debug, gc, phases) tm("Prune Scavenge Root Methods", &_gc_timer);
605
606 CodeCache::prune_scavenge_root_nmethods();
607 }
608
609 // Re-verify object start arrays
610 if (VerifyObjectStartArray &&
611 VerifyAfterGC) {
612 old_gen->verify_object_start_array();
613 }
614
615 // Verify all old -> young cards are now precise
616 if (VerifyRememberedSets) {
617 // Precise verification will give false positives. Until this is fixed,
618 // use imprecise verification.
619 // CardTableExtension::verify_all_young_refs_precise();
620 CardTableExtension::verify_all_young_refs_imprecise();
621 }
622
623 if (TraceYoungGenTime) accumulated_time()->stop();
624
625 young_gen->print_used_change(pre_gc_values.young_gen_used());
626 old_gen->print_used_change(pre_gc_values.old_gen_used());
627 MetaspaceAux::print_metaspace_change(pre_gc_values.metadata_used());
628
|
583
584 // Update the structure of the eden. With NUMA-eden CPU hotplugging or offlining can
585 // cause the change of the heap layout. Make sure eden is reshaped if that's the case.
586 // Also update() will case adaptive NUMA chunk resizing.
587 assert(young_gen->eden_space()->is_empty(), "eden space should be empty now");
588 young_gen->eden_space()->update();
589
590 heap->gc_policy_counters()->update_counters();
591
592 heap->resize_all_tlabs();
593
594 assert(young_gen->to_space()->is_empty(), "to space should be empty now");
595 }
596
597 #if defined(COMPILER2) || INCLUDE_JVMCI
598 DerivedPointerTable::update_pointers();
599 #endif
600
601 NOT_PRODUCT(reference_processor()->verify_no_references_recorded());
602
603 // Re-verify object start arrays
604 if (VerifyObjectStartArray &&
605 VerifyAfterGC) {
606 old_gen->verify_object_start_array();
607 }
608
609 // Verify all old -> young cards are now precise
610 if (VerifyRememberedSets) {
611 // Precise verification will give false positives. Until this is fixed,
612 // use imprecise verification.
613 // CardTableExtension::verify_all_young_refs_precise();
614 CardTableExtension::verify_all_young_refs_imprecise();
615 }
616
617 if (TraceYoungGenTime) accumulated_time()->stop();
618
619 young_gen->print_used_change(pre_gc_values.young_gen_used());
620 old_gen->print_used_change(pre_gc_values.old_gen_used());
621 MetaspaceAux::print_metaspace_change(pre_gc_values.metadata_used());
622
|