260 261 assert(SafepointSynchronize::is_at_safepoint(), "Expected at safepoint"); 262 log_info(gc)("GC request for \"%s\" is handled", GCCause::to_string(cause)); 263 MetaspaceGC::compute_new_size(); 264 print_metaspace_info(); 265 break; 266 default: 267 log_info(gc)("GC request for \"%s\" is ignored", GCCause::to_string(cause)); 268 } 269 _monitoring_support->update_counters(); 270 } 271 272 void EpsilonHeap::do_full_collection(bool clear_all_soft_refs) { 273 collect(gc_cause()); 274 } 275 276 void EpsilonHeap::object_iterate(ObjectClosure *cl) { 277 _space->object_iterate(cl); 278 } 279 280 void EpsilonHeap::print_on(outputStream *st) const { 281 st->print_cr("Epsilon Heap"); 282 283 // Cast away constness: 284 ((VirtualSpace)_virtual_space).print_on(st); 285 286 if (_space != NULL) { 287 st->print_cr("Allocation space:"); 288 _space->print_on(st); 289 } 290 291 MetaspaceUtils::print_on(st); 292 } 293 294 bool EpsilonHeap::print_location(outputStream* st, void* addr) const { 295 return BlockLocationPrinter<EpsilonHeap>::print_location(st, addr); 296 } 297 298 void EpsilonHeap::print_tracing_info() const { 299 print_heap_info(used()); | 260 261 assert(SafepointSynchronize::is_at_safepoint(), "Expected at safepoint"); 262 log_info(gc)("GC request for \"%s\" is handled", GCCause::to_string(cause)); 263 MetaspaceGC::compute_new_size(); 264 print_metaspace_info(); 265 break; 266 default: 267 log_info(gc)("GC request for \"%s\" is ignored", GCCause::to_string(cause)); 268 } 269 _monitoring_support->update_counters(); 270 } 271 272 void EpsilonHeap::do_full_collection(bool clear_all_soft_refs) { 273 collect(gc_cause()); 274 } 275 276 void EpsilonHeap::object_iterate(ObjectClosure *cl) { 277 _space->object_iterate(cl); 278 } 279 280 // No workGang for EpsilonHeap, work serially with thread 0 281 void EpsilonHeap::run_task(AbstractGangTask* task) { 282 task->work(0); 283 } 284 285 void EpsilonHeap::print_on(outputStream *st) const { 286 st->print_cr("Epsilon Heap"); 287 288 // Cast away constness: 289 ((VirtualSpace)_virtual_space).print_on(st); 290 291 if (_space != NULL) { 292 st->print_cr("Allocation space:"); 293 _space->print_on(st); 294 } 295 296 MetaspaceUtils::print_on(st); 297 } 298 299 bool EpsilonHeap::print_location(outputStream* st, void* addr) const { 300 return BlockLocationPrinter<EpsilonHeap>::print_location(st, addr); 301 } 302 303 void EpsilonHeap::print_tracing_info() const { 304 print_heap_info(used()); |