< prev index next >

src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp

Print this page
rev 7191 : 8058354: SPECjvm2008-Derby -2.7% performance regression on Solaris-X64 starting with 9-b29
Summary: Allow use of large pages for auxiliary data structures in G1. Clean up existing interfaces.
Reviewed-by: jmasa, pliden, stefank


 350   volatile unsigned int _old_marking_cycles_completed;
 351 
 352   bool _concurrent_cycle_started;
 353   bool _heap_summary_sent;
 354 
 355   // This is a non-product method that is helpful for testing. It is
 356   // called at the end of a GC and artificially expands the heap by
 357   // allocating a number of dead regions. This way we can induce very
 358   // frequent marking cycles and stress the cleanup / concurrent
 359   // cleanup code more (as all the regions that will be allocated by
 360   // this method will be found dead by the marking cycle).
 361   void allocate_dummy_regions() PRODUCT_RETURN;
 362 
 363   // Clear RSets after a compaction. It also resets the GC time stamps.
 364   void clear_rsets_post_compaction();
 365 
 366   // If the HR printer is active, dump the state of the regions in the
 367   // heap after a compaction.
 368   void print_hrm_post_compaction();
 369 






 370   double verify(bool guard, const char* msg);
 371   void verify_before_gc();
 372   void verify_after_gc();
 373 
 374   void log_gc_header();
 375   void log_gc_footer(double pause_time_sec);
 376 
 377   // These are macros so that, if the assert fires, we get the correct
 378   // line number, file, etc.
 379 
 380 #define heap_locking_asserts_err_msg(_extra_message_)                         \
 381   err_msg("%s : Heap_lock locked: %s, at safepoint: %s, is VM thread: %s",    \
 382           (_extra_message_),                                                  \
 383           BOOL_TO_STR(Heap_lock->owned_by_self()),                            \
 384           BOOL_TO_STR(SafepointSynchronize::is_at_safepoint()),               \
 385           BOOL_TO_STR(Thread::current()->is_VM_thread()))
 386 
 387 #define assert_heap_locked()                                                  \
 388   do {                                                                        \
 389     assert(Heap_lock->owned_by_self(),                                        \




 350   volatile unsigned int _old_marking_cycles_completed;
 351 
 352   bool _concurrent_cycle_started;
 353   bool _heap_summary_sent;
 354 
 355   // This is a non-product method that is helpful for testing. It is
 356   // called at the end of a GC and artificially expands the heap by
 357   // allocating a number of dead regions. This way we can induce very
 358   // frequent marking cycles and stress the cleanup / concurrent
 359   // cleanup code more (as all the regions that will be allocated by
 360   // this method will be found dead by the marking cycle).
 361   void allocate_dummy_regions() PRODUCT_RETURN;
 362 
 363   // Clear RSets after a compaction. It also resets the GC time stamps.
 364   void clear_rsets_post_compaction();
 365 
 366   // If the HR printer is active, dump the state of the regions in the
 367   // heap after a compaction.
 368   void print_hrm_post_compaction();
 369 
 370   // Create a memory mapper for auxiliary data structures of the given size and
 371   // translation factor.
 372   static G1RegionToSpaceMapper* create_aux_memory_mapper(const char* description,
 373                                                          size_t size,
 374                                                          size_t translation_factor);
 375 
 376   double verify(bool guard, const char* msg);
 377   void verify_before_gc();
 378   void verify_after_gc();
 379 
 380   void log_gc_header();
 381   void log_gc_footer(double pause_time_sec);
 382 
 383   // These are macros so that, if the assert fires, we get the correct
 384   // line number, file, etc.
 385 
 386 #define heap_locking_asserts_err_msg(_extra_message_)                         \
 387   err_msg("%s : Heap_lock locked: %s, at safepoint: %s, is VM thread: %s",    \
 388           (_extra_message_),                                                  \
 389           BOOL_TO_STR(Heap_lock->owned_by_self()),                            \
 390           BOOL_TO_STR(SafepointSynchronize::is_at_safepoint()),               \
 391           BOOL_TO_STR(Thread::current()->is_VM_thread()))
 392 
 393 #define assert_heap_locked()                                                  \
 394   do {                                                                        \
 395     assert(Heap_lock->owned_by_self(),                                        \


< prev index next >