69 // The generational collector policy. 70 GenCollectorPolicy* _gen_policy; 71 72 // Indicates that the most recent previous incremental collection failed. 73 // The flag is cleared when an action is taken that might clear the 74 // condition that caused that incremental collection to fail. 75 bool _incremental_collection_failed; 76 77 // In support of ExplicitGCInvokesConcurrent functionality 78 unsigned int _full_collections_completed; 79 80 // Data structure for claiming the (potentially) parallel tasks in 81 // (gen-specific) strong roots processing. 82 SubTasksDone* _gen_process_strong_tasks; 83 SubTasksDone* gen_process_strong_tasks() { return _gen_process_strong_tasks; } 84 85 // In block contents verification, the number of header words to skip 86 NOT_PRODUCT(static size_t _skip_header_HeapWords;) 87 88 protected: 89 // Directs each generation up to and including "collectedGen" to recompute 90 // its desired size. 91 //void compute_new_generation_sizes(int collectedGen); 92 93 // Helper functions for allocation 94 HeapWord* attempt_allocation(size_t size, 95 bool is_tlab, 96 bool first_only); 97 98 // Helper function for two callbacks below. 99 // Considers collection of the first max_level+1 generations. 100 void do_collection(bool full, 101 bool clear_all_soft_refs, 102 size_t size, 103 bool is_tlab, 104 int max_level); 105 106 // Callback from VM_GenCollectForAllocation operation. 107 // This function does everything necessary/possible to satisfy an 108 // allocation request that failed in the youngest generation that should 109 // have handled it (including collection, expansion, etc.) 110 HeapWord* satisfy_failed_allocation(size_t size, bool is_tlab); 111 112 // Callback from VM_GenCollectFull operation. | 69 // The generational collector policy. 70 GenCollectorPolicy* _gen_policy; 71 72 // Indicates that the most recent previous incremental collection failed. 73 // The flag is cleared when an action is taken that might clear the 74 // condition that caused that incremental collection to fail. 75 bool _incremental_collection_failed; 76 77 // In support of ExplicitGCInvokesConcurrent functionality 78 unsigned int _full_collections_completed; 79 80 // Data structure for claiming the (potentially) parallel tasks in 81 // (gen-specific) strong roots processing. 82 SubTasksDone* _gen_process_strong_tasks; 83 SubTasksDone* gen_process_strong_tasks() { return _gen_process_strong_tasks; } 84 85 // In block contents verification, the number of header words to skip 86 NOT_PRODUCT(static size_t _skip_header_HeapWords;) 87 88 protected: 89 // Helper functions for allocation 90 HeapWord* attempt_allocation(size_t size, 91 bool is_tlab, 92 bool first_only); 93 94 // Helper function for two callbacks below. 95 // Considers collection of the first max_level+1 generations. 96 void do_collection(bool full, 97 bool clear_all_soft_refs, 98 size_t size, 99 bool is_tlab, 100 int max_level); 101 102 // Callback from VM_GenCollectForAllocation operation. 103 // This function does everything necessary/possible to satisfy an 104 // allocation request that failed in the youngest generation that should 105 // have handled it (including collection, expansion, etc.) 106 HeapWord* satisfy_failed_allocation(size_t size, bool is_tlab); 107 108 // Callback from VM_GenCollectFull operation. |