src/hotspot/share/gc/parallel/psMarkSweep.cpp
branchdatagramsocketimpl-branch
changeset 58678 9cf78a70fa4f
parent 54786 ebf733a324d4
child 58679 9c3209ff7550
equal deleted inserted replaced
58677:13588c901957 58678:9cf78a70fa4f
   191     // Let the size policy know we're starting
   191     // Let the size policy know we're starting
   192     size_policy->major_collection_begin();
   192     size_policy->major_collection_begin();
   193 
   193 
   194     BiasedLocking::preserve_marks();
   194     BiasedLocking::preserve_marks();
   195 
   195 
   196     // Capture metadata size before collection for sizing.
   196     const PreGenGCValues pre_gc_values = heap->get_pre_gc_values();
   197     size_t metadata_prev_used = MetaspaceUtils::used_bytes();
       
   198 
       
   199     size_t old_gen_prev_used = old_gen->used_in_bytes();
       
   200     size_t young_gen_prev_used = young_gen->used_in_bytes();
       
   201 
   197 
   202     allocate_stacks();
   198     allocate_stacks();
   203 
   199 
   204 #if COMPILER2_OR_JVMCI
   200 #if COMPILER2_OR_JVMCI
   205     DerivedPointerTable::clear();
   201     DerivedPointerTable::clear();
   257     ClassLoaderDataGraph::purge();
   253     ClassLoaderDataGraph::purge();
   258     MetaspaceUtils::verify_metrics();
   254     MetaspaceUtils::verify_metrics();
   259 
   255 
   260     BiasedLocking::restore_marks();
   256     BiasedLocking::restore_marks();
   261     heap->prune_scavengable_nmethods();
   257     heap->prune_scavengable_nmethods();
   262     JvmtiExport::gc_epilogue();
       
   263 
   258 
   264 #if COMPILER2_OR_JVMCI
   259 #if COMPILER2_OR_JVMCI
   265     DerivedPointerTable::update_pointers();
   260     DerivedPointerTable::update_pointers();
   266 #endif
   261 #endif
   267 
   262 
   351 
   346 
   352     if (log_is_enabled(Debug, gc, heap, exit)) {
   347     if (log_is_enabled(Debug, gc, heap, exit)) {
   353       accumulated_time()->stop();
   348       accumulated_time()->stop();
   354     }
   349     }
   355 
   350 
   356     young_gen->print_used_change(young_gen_prev_used);
   351     heap->print_heap_change(pre_gc_values);
   357     old_gen->print_used_change(old_gen_prev_used);
       
   358     MetaspaceUtils::print_metaspace_change(metadata_prev_used);
       
   359 
   352 
   360     // Track memory usage and detect low memory
   353     // Track memory usage and detect low memory
   361     MemoryService::track_memory_usage();
   354     MemoryService::track_memory_usage();
   362     heap->update_counters();
   355     heap->update_counters();
   363 
   356 
   527     SystemDictionary::oops_do(mark_and_push_closure());
   520     SystemDictionary::oops_do(mark_and_push_closure());
   528     ClassLoaderDataGraph::always_strong_cld_do(follow_cld_closure());
   521     ClassLoaderDataGraph::always_strong_cld_do(follow_cld_closure());
   529     // Do not treat nmethods as strong roots for mark/sweep, since we can unload them.
   522     // Do not treat nmethods as strong roots for mark/sweep, since we can unload them.
   530     //ScavengableNMethods::scavengable_nmethods_do(CodeBlobToOopClosure(mark_and_push_closure()));
   523     //ScavengableNMethods::scavengable_nmethods_do(CodeBlobToOopClosure(mark_and_push_closure()));
   531     AOT_ONLY(AOTLoader::oops_do(mark_and_push_closure());)
   524     AOT_ONLY(AOTLoader::oops_do(mark_and_push_closure());)
   532     JVMCI_ONLY(JVMCI::oops_do(mark_and_push_closure());)
       
   533   }
   525   }
   534 
   526 
   535   // Flush marking stack.
   527   // Flush marking stack.
   536   follow_stack();
   528   follow_stack();
   537 
   529 
   623 
   615 
   624   CodeBlobToOopClosure adjust_from_blobs(adjust_pointer_closure(), CodeBlobToOopClosure::FixRelocations);
   616   CodeBlobToOopClosure adjust_from_blobs(adjust_pointer_closure(), CodeBlobToOopClosure::FixRelocations);
   625   CodeCache::blobs_do(&adjust_from_blobs);
   617   CodeCache::blobs_do(&adjust_from_blobs);
   626   AOT_ONLY(AOTLoader::oops_do(adjust_pointer_closure());)
   618   AOT_ONLY(AOTLoader::oops_do(adjust_pointer_closure());)
   627 
   619 
   628   JVMCI_ONLY(JVMCI::oops_do(adjust_pointer_closure());)
       
   629 
       
   630   ref_processor()->weak_oops_do(adjust_pointer_closure());
   620   ref_processor()->weak_oops_do(adjust_pointer_closure());
   631   PSScavenge::reference_processor()->weak_oops_do(adjust_pointer_closure());
   621   PSScavenge::reference_processor()->weak_oops_do(adjust_pointer_closure());
   632 
   622 
   633   adjust_marks();
   623   adjust_marks();
   634 
   624