< prev index next >

src/hotspot/share/gc/shared/collectedHeap.hpp

Print this page
rev 48920 : [backport] Use PLAB for evacuations instead of TLAB


 623   // requested phase has been reached, the collector will attempt to
 624   // avoid transitioning to a new phase until a new request is made.
 625   // [Note: A collector might not be able to remain in a given phase.
 626   // For example, a full collection might cancel an in-progress
 627   // concurrent collection.]
 628   //
 629   // Returns true when the phase is reached.  Returns false for an
 630   // unknown phase.  The default implementation returns false.
 631   virtual bool request_concurrent_phase(const char* phase);
 632 
 633   // Provides a thread pool to SafepointSynchronize to use
 634   // for parallel safepoint cleanup.
 635   // GCs that use a GC worker thread pool may want to share
 636   // it for use during safepoint cleanup. This is only possible
 637   // if the GC can pause and resume concurrent work (e.g. G1
 638   // concurrent marking) for an intermittent non-GC safepoint.
 639   // If this method returns NULL, SafepointSynchronize will
 640   // perform cleanup tasks serially in the VMThread.
 641   virtual WorkGang* get_safepoint_workers() { return NULL; }
 642 
 643   // Accumulate additional statistics from GCLABs.
 644   virtual void accumulate_statistics_all_gclabs();
 645 
 646   // Support for object pinning. This is used by JNI Get*Critical()
 647   // and Release*Critical() family of functions. If supported, the GC
 648   // must guarantee that pinned objects never move.
 649   virtual bool supports_object_pinning() const;
 650   virtual oop pin_object(JavaThread* thread, oop obj);
 651   virtual void unpin_object(JavaThread* thread, oop obj);
 652 
 653   // Non product verification and debugging.
 654 #ifndef PRODUCT
 655   // Support for PromotionFailureALot.  Return true if it's time to cause a
 656   // promotion failure.  The no-argument version uses
 657   // this->_promotion_failure_alot_count as the counter.
 658   inline bool promotion_should_fail(volatile size_t* count);
 659   inline bool promotion_should_fail();
 660 
 661   // Reset the PromotionFailureALot counters.  Should be called at the end of a
 662   // GC in which promotion failure occurred.
 663   inline void reset_promotion_should_fail(volatile size_t* count);
 664   inline void reset_promotion_should_fail();
 665 #endif  // #ifndef PRODUCT




 623   // requested phase has been reached, the collector will attempt to
 624   // avoid transitioning to a new phase until a new request is made.
 625   // [Note: A collector might not be able to remain in a given phase.
 626   // For example, a full collection might cancel an in-progress
 627   // concurrent collection.]
 628   //
 629   // Returns true when the phase is reached.  Returns false for an
 630   // unknown phase.  The default implementation returns false.
 631   virtual bool request_concurrent_phase(const char* phase);
 632 
 633   // Provides a thread pool to SafepointSynchronize to use
 634   // for parallel safepoint cleanup.
 635   // GCs that use a GC worker thread pool may want to share
 636   // it for use during safepoint cleanup. This is only possible
 637   // if the GC can pause and resume concurrent work (e.g. G1
 638   // concurrent marking) for an intermittent non-GC safepoint.
 639   // If this method returns NULL, SafepointSynchronize will
 640   // perform cleanup tasks serially in the VMThread.
 641   virtual WorkGang* get_safepoint_workers() { return NULL; }
 642 



 643   // Support for object pinning. This is used by JNI Get*Critical()
 644   // and Release*Critical() family of functions. If supported, the GC
 645   // must guarantee that pinned objects never move.
 646   virtual bool supports_object_pinning() const;
 647   virtual oop pin_object(JavaThread* thread, oop obj);
 648   virtual void unpin_object(JavaThread* thread, oop obj);
 649 
 650   // Non product verification and debugging.
 651 #ifndef PRODUCT
 652   // Support for PromotionFailureALot.  Return true if it's time to cause a
 653   // promotion failure.  The no-argument version uses
 654   // this->_promotion_failure_alot_count as the counter.
 655   inline bool promotion_should_fail(volatile size_t* count);
 656   inline bool promotion_should_fail();
 657 
 658   // Reset the PromotionFailureALot counters.  Should be called at the end of a
 659   // GC in which promotion failure occurred.
 660   inline void reset_promotion_should_fail(volatile size_t* count);
 661   inline void reset_promotion_should_fail();
 662 #endif  // #ifndef PRODUCT


< prev index next >