95 enum GCH_strong_roots_tasks {
96 GCH_PS_Universe_oops_do,
97 GCH_PS_JNIHandles_oops_do,
98 GCH_PS_ObjectSynchronizer_oops_do,
99 GCH_PS_FlatProfiler_oops_do,
100 GCH_PS_Management_oops_do,
101 GCH_PS_SystemDictionary_oops_do,
102 GCH_PS_ClassLoaderDataGraph_oops_do,
103 GCH_PS_jvmti_oops_do,
104 GCH_PS_CodeCache_oops_do,
105 GCH_PS_aot_oops_do,
106 GCH_PS_younger_gens,
107 // Leave this one last.
108 GCH_PS_NumElements
109 };
110
111 // Data structure for claiming the (potentially) parallel tasks in
112 // (gen-specific) roots processing.
113 SubTasksDone* _process_strong_tasks;
114
115 // Helper functions for allocation
116 HeapWord* attempt_allocation(size_t size,
117 bool is_tlab,
118 bool first_only);
119
120 // Helper function for two callbacks below.
121 // Considers collection of the first max_level+1 generations.
122 void do_collection(bool full,
123 bool clear_all_soft_refs,
124 size_t size,
125 bool is_tlab,
126 GenerationType max_generation);
127
128 // Callback from VM_GenCollectForAllocation operation.
129 // This function does everything necessary/possible to satisfy an
130 // allocation request that failed in the youngest generation that should
131 // have handled it (including collection, expansion, etc.)
132 HeapWord* satisfy_failed_allocation(size_t size, bool is_tlab);
133
134 // Callback from VM_GenCollectFull operation.
|
95 enum GCH_strong_roots_tasks {
96 GCH_PS_Universe_oops_do,
97 GCH_PS_JNIHandles_oops_do,
98 GCH_PS_ObjectSynchronizer_oops_do,
99 GCH_PS_FlatProfiler_oops_do,
100 GCH_PS_Management_oops_do,
101 GCH_PS_SystemDictionary_oops_do,
102 GCH_PS_ClassLoaderDataGraph_oops_do,
103 GCH_PS_jvmti_oops_do,
104 GCH_PS_CodeCache_oops_do,
105 GCH_PS_aot_oops_do,
106 GCH_PS_younger_gens,
107 // Leave this one last.
108 GCH_PS_NumElements
109 };
110
111 // Data structure for claiming the (potentially) parallel tasks in
112 // (gen-specific) roots processing.
113 SubTasksDone* _process_strong_tasks;
114
115 GCMemoryManager* _young_manager;
116 GCMemoryManager* _old_manager;
117
118 // Helper functions for allocation
119 HeapWord* attempt_allocation(size_t size,
120 bool is_tlab,
121 bool first_only);
122
123 // Helper function for two callbacks below.
124 // Considers collection of the first max_level+1 generations.
125 void do_collection(bool full,
126 bool clear_all_soft_refs,
127 size_t size,
128 bool is_tlab,
129 GenerationType max_generation);
130
131 // Callback from VM_GenCollectForAllocation operation.
132 // This function does everything necessary/possible to satisfy an
133 // allocation request that failed in the youngest generation that should
134 // have handled it (including collection, expansion, etc.)
135 HeapWord* satisfy_failed_allocation(size_t size, bool is_tlab);
136
137 // Callback from VM_GenCollectFull operation.
|