287 // this method will be found dead by the marking cycle).
288 void allocate_dummy_regions() PRODUCT_RETURN;
289
290 // Clear RSets after a compaction. It also resets the GC time stamps.
291 void clear_rsets_post_compaction();
292
293 // If the HR printer is active, dump the state of the regions in the
294 // heap after a compaction.
295 void print_hrm_post_compaction();
296
297 // Create a memory mapper for auxiliary data structures of the given size and
298 // translation factor.
299 static G1RegionToSpaceMapper* create_aux_memory_mapper(const char* description,
300 size_t size,
301 size_t translation_factor);
302
303 static G1Policy* create_g1_policy(STWGCTimer* gc_timer);
304
305 void trace_heap(GCWhen::Type when, const GCTracer* tracer);
306
307 void process_weak_jni_handles();
308
309 // These are macros so that, if the assert fires, we get the correct
310 // line number, file, etc.
311
312 #define heap_locking_asserts_params(_extra_message_) \
313 "%s : Heap_lock locked: %s, at safepoint: %s, is VM thread: %s", \
314 (_extra_message_), \
315 BOOL_TO_STR(Heap_lock->owned_by_self()), \
316 BOOL_TO_STR(SafepointSynchronize::is_at_safepoint()), \
317 BOOL_TO_STR(Thread::current()->is_VM_thread())
318
319 #define assert_heap_locked() \
320 do { \
321 assert(Heap_lock->owned_by_self(), \
322 heap_locking_asserts_params("should be holding the Heap_lock")); \
323 } while (0)
324
325 #define assert_heap_locked_or_at_safepoint(_should_be_vm_thread_) \
326 do { \
|
287 // this method will be found dead by the marking cycle).
288 void allocate_dummy_regions() PRODUCT_RETURN;
289
290 // Clear RSets after a compaction. It also resets the GC time stamps.
291 void clear_rsets_post_compaction();
292
293 // If the HR printer is active, dump the state of the regions in the
294 // heap after a compaction.
295 void print_hrm_post_compaction();
296
297 // Create a memory mapper for auxiliary data structures of the given size and
298 // translation factor.
299 static G1RegionToSpaceMapper* create_aux_memory_mapper(const char* description,
300 size_t size,
301 size_t translation_factor);
302
303 static G1Policy* create_g1_policy(STWGCTimer* gc_timer);
304
305 void trace_heap(GCWhen::Type when, const GCTracer* tracer);
306
307 void process_heap_monitoring();
308 void process_weak_jni_handles();
309
310 // These are macros so that, if the assert fires, we get the correct
311 // line number, file, etc.
312
313 #define heap_locking_asserts_params(_extra_message_) \
314 "%s : Heap_lock locked: %s, at safepoint: %s, is VM thread: %s", \
315 (_extra_message_), \
316 BOOL_TO_STR(Heap_lock->owned_by_self()), \
317 BOOL_TO_STR(SafepointSynchronize::is_at_safepoint()), \
318 BOOL_TO_STR(Thread::current()->is_VM_thread())
319
320 #define assert_heap_locked() \
321 do { \
322 assert(Heap_lock->owned_by_self(), \
323 heap_locking_asserts_params("should be holding the Heap_lock")); \
324 } while (0)
325
326 #define assert_heap_locked_or_at_safepoint(_should_be_vm_thread_) \
327 do { \
|