961
962 // Debugging
963 void verify();
964 bool verify_after_remark();
965 void verify_ok_to_terminate() const PRODUCT_RETURN;
966 void verify_work_stacks_empty() const PRODUCT_RETURN;
967 void verify_overflow_empty() const PRODUCT_RETURN;
968
969 // Convenience methods in support of debugging
970 static const size_t skip_header_HeapWords() PRODUCT_RETURN0;
971 HeapWord* block_start(const void* p) const PRODUCT_RETURN0;
972
973 // Accessors
974 CMSMarkStack* verification_mark_stack() { return &_markStack; }
975 CMSBitMap* verification_mark_bm() { return &_verification_mark_bm; }
976
977 // Initialization errors
978 bool completed_initialization() { return _completed_initialization; }
979
980 void print_eden_and_survivor_chunk_arrays();
981 };
982
983 class CMSExpansionCause : public AllStatic {
984 public:
985 enum Cause {
986 _no_expansion,
987 _satisfy_free_ratio,
988 _satisfy_promotion,
989 _satisfy_allocation,
990 _allocate_par_lab,
991 _allocate_par_spooling_space,
992 _adaptive_size_policy
993 };
994 // Return a string describing the cause of the expansion.
995 static const char* to_string(CMSExpansionCause::Cause cause);
996 };
997
998 class ConcurrentMarkSweepGeneration: public CardGeneration {
999 friend class VMStructs;
1000 friend class ConcurrentMarkSweepThread;
|
961
962 // Debugging
963 void verify();
964 bool verify_after_remark();
965 void verify_ok_to_terminate() const PRODUCT_RETURN;
966 void verify_work_stacks_empty() const PRODUCT_RETURN;
967 void verify_overflow_empty() const PRODUCT_RETURN;
968
969 // Convenience methods in support of debugging
970 static const size_t skip_header_HeapWords() PRODUCT_RETURN0;
971 HeapWord* block_start(const void* p) const PRODUCT_RETURN0;
972
973 // Accessors
974 CMSMarkStack* verification_mark_stack() { return &_markStack; }
975 CMSBitMap* verification_mark_bm() { return &_verification_mark_bm; }
976
977 // Initialization errors
978 bool completed_initialization() { return _completed_initialization; }
979
980 void print_eden_and_survivor_chunk_arrays();
981
982 ConcurrentGCTimer* gc_timer_cm() const { return _gc_timer_cm; }
983 };
984
985 class CMSExpansionCause : public AllStatic {
986 public:
987 enum Cause {
988 _no_expansion,
989 _satisfy_free_ratio,
990 _satisfy_promotion,
991 _satisfy_allocation,
992 _allocate_par_lab,
993 _allocate_par_spooling_space,
994 _adaptive_size_policy
995 };
996 // Return a string describing the cause of the expansion.
997 static const char* to_string(CMSExpansionCause::Cause cause);
998 };
999
1000 class ConcurrentMarkSweepGeneration: public CardGeneration {
1001 friend class VMStructs;
1002 friend class ConcurrentMarkSweepThread;
|