< prev index next >

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

Print this page
rev 8048 : 8058354: SPECjvm2008-Derby -2.7% performance regression on Solaris-X64 starting with 9-b29
Summary: Allow partial use of large pages for auxiliary data structures in G1.
Reviewed-by: jmasa


 334   volatile uint _old_marking_cycles_completed;
 335 
 336   bool _concurrent_cycle_started;
 337   bool _heap_summary_sent;
 338 
 339   // This is a non-product method that is helpful for testing. It is
 340   // called at the end of a GC and artificially expands the heap by
 341   // allocating a number of dead regions. This way we can induce very
 342   // frequent marking cycles and stress the cleanup / concurrent
 343   // cleanup code more (as all the regions that will be allocated by
 344   // this method will be found dead by the marking cycle).
 345   void allocate_dummy_regions() PRODUCT_RETURN;
 346 
 347   // Clear RSets after a compaction. It also resets the GC time stamps.
 348   void clear_rsets_post_compaction();
 349 
 350   // If the HR printer is active, dump the state of the regions in the
 351   // heap after a compaction.
 352   void print_hrm_post_compaction();
 353 






 354   double verify(bool guard, const char* msg);
 355   void verify_before_gc();
 356   void verify_after_gc();
 357 
 358   void log_gc_header();
 359   void log_gc_footer(double pause_time_sec);
 360 
 361   // These are macros so that, if the assert fires, we get the correct
 362   // line number, file, etc.
 363 
 364 #define heap_locking_asserts_err_msg(_extra_message_)                         \
 365   err_msg("%s : Heap_lock locked: %s, at safepoint: %s, is VM thread: %s",    \
 366           (_extra_message_),                                                  \
 367           BOOL_TO_STR(Heap_lock->owned_by_self()),                            \
 368           BOOL_TO_STR(SafepointSynchronize::is_at_safepoint()),               \
 369           BOOL_TO_STR(Thread::current()->is_VM_thread()))
 370 
 371 #define assert_heap_locked()                                                  \
 372   do {                                                                        \
 373     assert(Heap_lock->owned_by_self(),                                        \




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


< prev index next >