src/share/vm/gc/shared/genCollectedHeap.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File hotspot Sdiff src/share/vm/gc/shared

src/share/vm/gc/shared/genCollectedHeap.cpp

Print this page




1208   // Fill TLAB's and such
1209   CollectedHeap::accumulate_statistics_all_tlabs();
1210   ensure_parsability(true);   // retire TLABs
1211 
1212   // Walk generations
1213   GenGCPrologueClosure blk(full);
1214   generation_iterate(&blk, false);  // not old-to-young.
1215 };
1216 
1217 class GenGCEpilogueClosure: public GenCollectedHeap::GenClosure {
1218  private:
1219   bool _full;
1220  public:
1221   void do_generation(Generation* gen) {
1222     gen->gc_epilogue(_full);
1223   }
1224   GenGCEpilogueClosure(bool full) : _full(full) {};
1225 };
1226 
1227 void GenCollectedHeap::gc_epilogue(bool full) {
1228 #ifdef COMPILER2
1229   assert(DerivedPointerTable::is_empty(), "derived pointer present");
1230   size_t actual_gap = pointer_delta((HeapWord*) (max_uintx-3), *(end_addr()));
1231   guarantee(actual_gap > (size_t)FastAllocateSizeLimit, "inline allocation wraps");
1232 #endif /* COMPILER2 */
1233 
1234   resize_all_tlabs();
1235 
1236   GenGCEpilogueClosure blk(full);
1237   generation_iterate(&blk, false);  // not old-to-young.
1238 
1239   if (!CleanChunkPoolAsync) {
1240     Chunk::clean_chunk_pool();
1241   }
1242 
1243   MetaspaceCounters::update_performance_counters();
1244   CompressedClassSpaceCounters::update_performance_counters();
1245 
1246   always_do_update_barrier = UseConcMarkSweepGC;
1247 };
1248 




1208   // Fill TLAB's and such
1209   CollectedHeap::accumulate_statistics_all_tlabs();
1210   ensure_parsability(true);   // retire TLABs
1211 
1212   // Walk generations
1213   GenGCPrologueClosure blk(full);
1214   generation_iterate(&blk, false);  // not old-to-young.
1215 };
1216 
1217 class GenGCEpilogueClosure: public GenCollectedHeap::GenClosure {
1218  private:
1219   bool _full;
1220  public:
1221   void do_generation(Generation* gen) {
1222     gen->gc_epilogue(_full);
1223   }
1224   GenGCEpilogueClosure(bool full) : _full(full) {};
1225 };
1226 
1227 void GenCollectedHeap::gc_epilogue(bool full) {
1228 #if defined(COMPILER2) || INCLUDE_JVMCI
1229   assert(DerivedPointerTable::is_empty(), "derived pointer present");
1230   size_t actual_gap = pointer_delta((HeapWord*) (max_uintx-3), *(end_addr()));
1231   guarantee(actual_gap > (size_t)FastAllocateSizeLimit, "inline allocation wraps");
1232 #endif /* COMPILER2 */
1233 
1234   resize_all_tlabs();
1235 
1236   GenGCEpilogueClosure blk(full);
1237   generation_iterate(&blk, false);  // not old-to-young.
1238 
1239   if (!CleanChunkPoolAsync) {
1240     Chunk::clean_chunk_pool();
1241   }
1242 
1243   MetaspaceCounters::update_performance_counters();
1244   CompressedClassSpaceCounters::update_performance_counters();
1245 
1246   always_do_update_barrier = UseConcMarkSweepGC;
1247 };
1248 


src/share/vm/gc/shared/genCollectedHeap.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File