575 virtual void print_gc_threads_on(outputStream* st) const = 0;
576 // The default behavior is to call print_gc_threads_on() on tty.
577 void print_gc_threads() {
578 print_gc_threads_on(tty);
579 }
580 // Iterator for all GC threads (other than VM thread)
581 virtual void gc_threads_do(ThreadClosure* tc) const = 0;
582
583 // Print any relevant tracing info that flags imply.
584 // Default implementation does nothing.
585 virtual void print_tracing_info() const = 0;
586
587 void print_heap_before_gc();
588 void print_heap_after_gc();
589
590 // Registering and unregistering an nmethod (compiled code) with the heap.
591 // Override with specific mechanism for each specialized heap type.
592 virtual void register_nmethod(nmethod* nm);
593 virtual void unregister_nmethod(nmethod* nm);
594
595 void trace_heap_before_gc(const GCTracer* gc_tracer);
596 void trace_heap_after_gc(const GCTracer* gc_tracer);
597
598 // Heap verification
599 virtual void verify(VerifyOption option) = 0;
600
601 // Accumulate additional statistics from GCLABs.
602 virtual void accumulate_statistics_all_gclabs();
603
604 // Non product verification and debugging.
605 #ifndef PRODUCT
606 // Support for PromotionFailureALot. Return true if it's time to cause a
607 // promotion failure. The no-argument version uses
608 // this->_promotion_failure_alot_count as the counter.
609 inline bool promotion_should_fail(volatile size_t* count);
610 inline bool promotion_should_fail();
611
612 // Reset the PromotionFailureALot counters. Should be called at the end of a
613 // GC in which promotion failure occurred.
614 inline void reset_promotion_should_fail(volatile size_t* count);
|
575 virtual void print_gc_threads_on(outputStream* st) const = 0;
576 // The default behavior is to call print_gc_threads_on() on tty.
577 void print_gc_threads() {
578 print_gc_threads_on(tty);
579 }
580 // Iterator for all GC threads (other than VM thread)
581 virtual void gc_threads_do(ThreadClosure* tc) const = 0;
582
583 // Print any relevant tracing info that flags imply.
584 // Default implementation does nothing.
585 virtual void print_tracing_info() const = 0;
586
587 void print_heap_before_gc();
588 void print_heap_after_gc();
589
590 // Registering and unregistering an nmethod (compiled code) with the heap.
591 // Override with specific mechanism for each specialized heap type.
592 virtual void register_nmethod(nmethod* nm);
593 virtual void unregister_nmethod(nmethod* nm);
594
595 virtual void enter_critical(oop o);
596 virtual void exit_critical(oop o);
597
598 void trace_heap_before_gc(const GCTracer* gc_tracer);
599 void trace_heap_after_gc(const GCTracer* gc_tracer);
600
601 // Heap verification
602 virtual void verify(VerifyOption option) = 0;
603
604 // Accumulate additional statistics from GCLABs.
605 virtual void accumulate_statistics_all_gclabs();
606
607 // Non product verification and debugging.
608 #ifndef PRODUCT
609 // Support for PromotionFailureALot. Return true if it's time to cause a
610 // promotion failure. The no-argument version uses
611 // this->_promotion_failure_alot_count as the counter.
612 inline bool promotion_should_fail(volatile size_t* count);
613 inline bool promotion_should_fail();
614
615 // Reset the PromotionFailureALot counters. Should be called at the end of a
616 // GC in which promotion failure occurred.
617 inline void reset_promotion_should_fail(volatile size_t* count);
|