700 double _bootstrap_occupancy;
701
702 // timer
703 elapsedTimer _timer;
704
705 // Timing, allocation and promotion statistics, used for scheduling.
706 CMSStats _stats;
707
708 // Allocation limits installed in the young gen, used only in
709 // CMSIncrementalMode. When an allocation in the young gen would cross one of
710 // these limits, the cms generation is notified and the cms thread is started
711 // or stopped, respectively.
712 HeapWord* _icms_start_limit;
713 HeapWord* _icms_stop_limit;
714
715 enum CMS_op_type {
716 CMS_op_checkpointRootsInitial,
717 CMS_op_checkpointRootsFinal
718 };
719
720 void do_CMS_operation(CMS_op_type op);
721 bool stop_world_and_do(CMS_op_type op);
722
723 OopTaskQueueSet* task_queues() { return _task_queues; }
724 int* hash_seed(int i) { return &_hash_seed[i]; }
725 YieldingFlexibleWorkGang* conc_workers() { return _conc_workers; }
726
727 // Support for parallelizing Eden rescan in CMS remark phase
728 void sample_eden(); // ... sample Eden space top
729
730 private:
731 // Support for parallelizing young gen rescan in CMS remark phase
732 Generation* _young_gen; // the younger gen
733 HeapWord** _top_addr; // ... Top of Eden
734 HeapWord** _end_addr; // ... End of Eden
735 HeapWord** _eden_chunk_array; // ... Eden partitioning array
736 size_t _eden_chunk_index; // ... top (exclusive) of array
737 size_t _eden_chunk_capacity; // ... max entries in array
738
739 // Support for parallelizing survivor space rescan
740 HeapWord** _survivor_chunk_array;
|
700 double _bootstrap_occupancy;
701
702 // timer
703 elapsedTimer _timer;
704
705 // Timing, allocation and promotion statistics, used for scheduling.
706 CMSStats _stats;
707
708 // Allocation limits installed in the young gen, used only in
709 // CMSIncrementalMode. When an allocation in the young gen would cross one of
710 // these limits, the cms generation is notified and the cms thread is started
711 // or stopped, respectively.
712 HeapWord* _icms_start_limit;
713 HeapWord* _icms_stop_limit;
714
715 enum CMS_op_type {
716 CMS_op_checkpointRootsInitial,
717 CMS_op_checkpointRootsFinal
718 };
719
720 void do_CMS_operation(CMS_op_type op, GCCause::Cause gc_cause);
721 bool stop_world_and_do(CMS_op_type op);
722
723 OopTaskQueueSet* task_queues() { return _task_queues; }
724 int* hash_seed(int i) { return &_hash_seed[i]; }
725 YieldingFlexibleWorkGang* conc_workers() { return _conc_workers; }
726
727 // Support for parallelizing Eden rescan in CMS remark phase
728 void sample_eden(); // ... sample Eden space top
729
730 private:
731 // Support for parallelizing young gen rescan in CMS remark phase
732 Generation* _young_gen; // the younger gen
733 HeapWord** _top_addr; // ... Top of Eden
734 HeapWord** _end_addr; // ... End of Eden
735 HeapWord** _eden_chunk_array; // ... Eden partitioning array
736 size_t _eden_chunk_index; // ... top (exclusive) of array
737 size_t _eden_chunk_capacity; // ... max entries in array
738
739 // Support for parallelizing survivor space rescan
740 HeapWord** _survivor_chunk_array;
|