588 }
589
590 // Print all GC threads (other than the VM thread)
591 // used by this heap.
592 virtual void print_gc_threads_on(outputStream* st) const = 0;
593 // The default behavior is to call print_gc_threads_on() on tty.
594 void print_gc_threads() {
595 print_gc_threads_on(tty);
596 }
597 // Iterator for all GC threads (other than VM thread)
598 virtual void gc_threads_do(ThreadClosure* tc) const = 0;
599
600 // Print any relevant tracing info that flags imply.
601 // Default implementation does nothing.
602 virtual void print_tracing_info() const = 0;
603
604 void print_heap_before_gc();
605 void print_heap_after_gc();
606
607 // Registering and unregistering an nmethod (compiled code) with the heap.
608 // Override with specific mechanism for each specialized heap type
609 virtual void register_nmethod(nmethod* nm) {}
610 virtual void unregister_nmethod(nmethod* nm) {}
611
612 void trace_heap_before_gc(GCTracer* gc_tracer);
613 void trace_heap_after_gc(GCTracer* gc_tracer);
614
615 // Heap verification
616 virtual void verify(bool silent, VerifyOption option) = 0;
617
618 // Non product verification and debugging.
619 #ifndef PRODUCT
620 // Support for PromotionFailureALot. Return true if it's time to cause a
621 // promotion failure. The no-argument version uses
622 // this->_promotion_failure_alot_count as the counter.
623 inline bool promotion_should_fail(volatile size_t* count);
624 inline bool promotion_should_fail();
625
626 // Reset the PromotionFailureALot counters. Should be called at the end of a
627 // GC in which promotion failure occurred.
628 inline void reset_promotion_should_fail(volatile size_t* count);
629 inline void reset_promotion_should_fail();
630 #endif // #ifndef PRODUCT
|
588 }
589
590 // Print all GC threads (other than the VM thread)
591 // used by this heap.
592 virtual void print_gc_threads_on(outputStream* st) const = 0;
593 // The default behavior is to call print_gc_threads_on() on tty.
594 void print_gc_threads() {
595 print_gc_threads_on(tty);
596 }
597 // Iterator for all GC threads (other than VM thread)
598 virtual void gc_threads_do(ThreadClosure* tc) const = 0;
599
600 // Print any relevant tracing info that flags imply.
601 // Default implementation does nothing.
602 virtual void print_tracing_info() const = 0;
603
604 void print_heap_before_gc();
605 void print_heap_after_gc();
606
607 // Registering and unregistering an nmethod (compiled code) with the heap.
608 // Override with specific mechanism for each specialized heap type.
609 virtual void register_nmethod(nmethod* nm);
610 virtual void unregister_nmethod(nmethod* nm);
611
612 void trace_heap_before_gc(GCTracer* gc_tracer);
613 void trace_heap_after_gc(GCTracer* gc_tracer);
614
615 // Heap verification
616 virtual void verify(bool silent, VerifyOption option) = 0;
617
618 // Non product verification and debugging.
619 #ifndef PRODUCT
620 // Support for PromotionFailureALot. Return true if it's time to cause a
621 // promotion failure. The no-argument version uses
622 // this->_promotion_failure_alot_count as the counter.
623 inline bool promotion_should_fail(volatile size_t* count);
624 inline bool promotion_should_fail();
625
626 // Reset the PromotionFailureALot counters. Should be called at the end of a
627 // GC in which promotion failure occurred.
628 inline void reset_promotion_should_fail(volatile size_t* count);
629 inline void reset_promotion_should_fail();
630 #endif // #ifndef PRODUCT
|