280 assert(SafepointSynchronize::is_at_safepoint(), "Expected at safepoint");
281 log_info(gc)("GC request for \"%s\" is handled", GCCause::to_string(cause));
282 MetaspaceGC::compute_new_size();
283 print_metaspace_info();
284 break;
285 default:
286 log_info(gc)("GC request for \"%s\" is ignored", GCCause::to_string(cause));
287 }
288 _monitoring_support->update_counters();
289 }
290
291 void EpsilonHeap::do_full_collection(bool clear_all_soft_refs) {
292 collect(gc_cause());
293 }
294
295 void EpsilonHeap::object_iterate(ObjectClosure *cl) {
296 _space->object_iterate(cl);
297 }
298
299 // No workGang for EpsilonHeap, work serially with thread 0
300 Tickspan EpsilonHeap::run_task(AbstractGangTask* task) {
301 Ticks start = Ticks::now();
302 task->work(0);
303 return Ticks::now() - start;
304 }
305
306 void EpsilonHeap::print_on(outputStream *st) const {
307 st->print_cr("Epsilon Heap");
308
309 // Cast away constness:
310 ((VirtualSpace)_virtual_space).print_on(st);
311
312 st->print_cr("Allocation space:");
313 _space->print_on(st);
314
315 MetaspaceUtils::print_on(st);
316 }
317
318 bool EpsilonHeap::print_location(outputStream* st, void* addr) const {
319 return BlockLocationPrinter<EpsilonHeap>::print_location(st, addr);
320 }
321
322 void EpsilonHeap::print_tracing_info() const {
323 print_heap_info(used());
|
280 assert(SafepointSynchronize::is_at_safepoint(), "Expected at safepoint");
281 log_info(gc)("GC request for \"%s\" is handled", GCCause::to_string(cause));
282 MetaspaceGC::compute_new_size();
283 print_metaspace_info();
284 break;
285 default:
286 log_info(gc)("GC request for \"%s\" is ignored", GCCause::to_string(cause));
287 }
288 _monitoring_support->update_counters();
289 }
290
291 void EpsilonHeap::do_full_collection(bool clear_all_soft_refs) {
292 collect(gc_cause());
293 }
294
295 void EpsilonHeap::object_iterate(ObjectClosure *cl) {
296 _space->object_iterate(cl);
297 }
298
299 // No workGang for EpsilonHeap, work serially with thread 0
300 void EpsilonHeap::run_task(AbstractGangTask* task) {
301 task->work(0);
302 }
303
304 void EpsilonHeap::print_on(outputStream *st) const {
305 st->print_cr("Epsilon Heap");
306
307 // Cast away constness:
308 ((VirtualSpace)_virtual_space).print_on(st);
309
310 st->print_cr("Allocation space:");
311 _space->print_on(st);
312
313 MetaspaceUtils::print_on(st);
314 }
315
316 bool EpsilonHeap::print_location(outputStream* st, void* addr) const {
317 return BlockLocationPrinter<EpsilonHeap>::print_location(st, addr);
318 }
319
320 void EpsilonHeap::print_tracing_info() const {
321 print_heap_info(used());
|