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
|
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
|