< prev index next >

src/hotspot/share/gc/parallel/psParallelCompact.cpp

Print this page
rev 49905 : imported patch 8201492-properly-implement-non-contiguous-reference-processing
rev 49908 : imported patch 8202021-cleanup-referenceprocessor
rev 49910 : imported patch 8202017-reference-processor-remove-enqueue


1021 
1022   PSCardTable* ct = heap->card_table();
1023   MemRegion old_mr = heap->old_gen()->reserved();
1024   if (young_gen_empty) {
1025     ct->clear(MemRegion(old_mr.start(), old_mr.end()));
1026   } else {
1027     ct->invalidate(MemRegion(old_mr.start(), old_mr.end()));
1028   }
1029 
1030   // Delete metaspaces for unloaded class loaders and clean up loader_data graph
1031   ClassLoaderDataGraph::purge();
1032   MetaspaceUtils::verify_metrics();
1033 
1034   CodeCache::gc_epilogue();
1035   JvmtiExport::gc_epilogue();
1036 
1037 #if COMPILER2_OR_JVMCI
1038   DerivedPointerTable::update_pointers();
1039 #endif
1040 
1041   ReferenceProcessorPhaseTimes pt(&_gc_timer, ref_processor()->num_queues());
1042 
1043   ref_processor()->enqueue_discovered_references(NULL, &pt);
1044 
1045   pt.print_enqueue_phase();
1046 
1047   if (ZapUnusedHeapArea) {
1048     heap->gen_mangle_unused_area();
1049   }
1050 
1051   // Update time of last GC
1052   reset_millis_since_last_gc();
1053 }
1054 
1055 HeapWord*
1056 PSParallelCompact::compute_dense_prefix_via_density(const SpaceId id,
1057                                                     bool maximum_compaction)
1058 {
1059   const size_t region_size = ParallelCompactData::RegionSize;
1060   const ParallelCompactData& sd = summary_data();
1061 
1062   const MutableSpace* const space = _space_info[id].space();
1063   HeapWord* const top_aligned_up = sd.region_align_up(space->top());
1064   const RegionData* const beg_cp = sd.addr_to_region_ptr(space->bottom());
1065   const RegionData* const end_cp = sd.addr_to_region_ptr(top_aligned_up);
1066 




1021 
1022   PSCardTable* ct = heap->card_table();
1023   MemRegion old_mr = heap->old_gen()->reserved();
1024   if (young_gen_empty) {
1025     ct->clear(MemRegion(old_mr.start(), old_mr.end()));
1026   } else {
1027     ct->invalidate(MemRegion(old_mr.start(), old_mr.end()));
1028   }
1029 
1030   // Delete metaspaces for unloaded class loaders and clean up loader_data graph
1031   ClassLoaderDataGraph::purge();
1032   MetaspaceUtils::verify_metrics();
1033 
1034   CodeCache::gc_epilogue();
1035   JvmtiExport::gc_epilogue();
1036 
1037 #if COMPILER2_OR_JVMCI
1038   DerivedPointerTable::update_pointers();
1039 #endif
1040 






1041   if (ZapUnusedHeapArea) {
1042     heap->gen_mangle_unused_area();
1043   }
1044 
1045   // Update time of last GC
1046   reset_millis_since_last_gc();
1047 }
1048 
1049 HeapWord*
1050 PSParallelCompact::compute_dense_prefix_via_density(const SpaceId id,
1051                                                     bool maximum_compaction)
1052 {
1053   const size_t region_size = ParallelCompactData::RegionSize;
1054   const ParallelCompactData& sd = summary_data();
1055 
1056   const MutableSpace* const space = _space_info[id].space();
1057   HeapWord* const top_aligned_up = sd.region_align_up(space->top());
1058   const RegionData* const beg_cp = sd.addr_to_region_ptr(space->bottom());
1059   const RegionData* const end_cp = sd.addr_to_region_ptr(top_aligned_up);
1060 


< prev index next >