src/share/vm/gc_implementation/g1/heapRegion.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File hs-gc-g1-mmap Sdiff src/share/vm/gc_implementation/g1

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

Print this page




 344              MemRegion mr);
 345 
 346   static int    LogOfHRGrainBytes;
 347   static int    LogOfHRGrainWords;
 348 
 349   static size_t GrainBytes;
 350   static size_t GrainWords;
 351   static size_t CardsPerRegion;
 352 
 353   static size_t align_up_to_region_byte_size(size_t sz) {
 354     return (sz + (size_t) GrainBytes - 1) &
 355                                       ~((1 << (size_t) LogOfHRGrainBytes) - 1);
 356   }
 357 
 358   // It sets up the heap region size (GrainBytes / GrainWords), as
 359   // well as other related fields that are based on the heap region
 360   // size (LogOfHRGrainBytes / LogOfHRGrainWords /
 361   // CardsPerRegion). All those fields are considered constant
 362   // throughout the JVM's execution, therefore they should only be set
 363   // up once during initialization time.
 364   static void setup_heap_region_size(uintx min_heap_size);
 365 
 366   enum ClaimValues {
 367     InitialClaimValue          = 0,
 368     FinalCountClaimValue       = 1,
 369     NoteEndClaimValue          = 2,
 370     ScrubRemSetClaimValue      = 3,
 371     ParVerifyClaimValue        = 4,
 372     RebuildRSClaimValue        = 5,
 373     ParEvacFailureClaimValue   = 6,
 374     AggregateCountClaimValue   = 7,
 375     VerifyCountClaimValue      = 8,
 376     ParMarkRootClaimValue      = 9
 377   };
 378 
 379   inline HeapWord* par_allocate_no_bot_updates(size_t word_size) {
 380     assert(is_young(), "we can only skip BOT updates on young regions");
 381     return ContiguousSpace::par_allocate(word_size);
 382   }
 383   inline HeapWord* allocate_no_bot_updates(size_t word_size) {
 384     assert(is_young(), "we can only skip BOT updates on young regions");




 344              MemRegion mr);
 345 
 346   static int    LogOfHRGrainBytes;
 347   static int    LogOfHRGrainWords;
 348 
 349   static size_t GrainBytes;
 350   static size_t GrainWords;
 351   static size_t CardsPerRegion;
 352 
 353   static size_t align_up_to_region_byte_size(size_t sz) {
 354     return (sz + (size_t) GrainBytes - 1) &
 355                                       ~((1 << (size_t) LogOfHRGrainBytes) - 1);
 356   }
 357 
 358   // It sets up the heap region size (GrainBytes / GrainWords), as
 359   // well as other related fields that are based on the heap region
 360   // size (LogOfHRGrainBytes / LogOfHRGrainWords /
 361   // CardsPerRegion). All those fields are considered constant
 362   // throughout the JVM's execution, therefore they should only be set
 363   // up once during initialization time.
 364   static void setup_heap_region_size(size_t initial_heap_size, size_t max_heap_size);
 365 
 366   enum ClaimValues {
 367     InitialClaimValue          = 0,
 368     FinalCountClaimValue       = 1,
 369     NoteEndClaimValue          = 2,
 370     ScrubRemSetClaimValue      = 3,
 371     ParVerifyClaimValue        = 4,
 372     RebuildRSClaimValue        = 5,
 373     ParEvacFailureClaimValue   = 6,
 374     AggregateCountClaimValue   = 7,
 375     VerifyCountClaimValue      = 8,
 376     ParMarkRootClaimValue      = 9
 377   };
 378 
 379   inline HeapWord* par_allocate_no_bot_updates(size_t word_size) {
 380     assert(is_young(), "we can only skip BOT updates on young regions");
 381     return ContiguousSpace::par_allocate(word_size);
 382   }
 383   inline HeapWord* allocate_no_bot_updates(size_t word_size) {
 384     assert(is_young(), "we can only skip BOT updates on young regions");


src/share/vm/gc_implementation/g1/heapRegion.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File