src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File
*** old/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp	Thu Aug 29 14:32:01 2013
--- new/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp	Thu Aug 29 14:32:00 2013

*** 165,176 **** --- 165,184 ---- _gc_overhead_perc(0.0) { // Set up the region size and associated fields. Given that the // policy is created before the heap, we have to set this up here, - // so it's done as soon as possible. HeapRegion::setup_heap_region_size(Arguments::min_heap_size()); + + // It would have been natural to pass initial_heap_byte_size() and + // max_heap_byte_size() to setup_heap_region_size() but those have + // not been set up at this point since they should be aligned with + // the region size. So, there is a circular dependency here. We base + // the region size on the heap size, but the heap size should be + // aligned with the region size. To get around this we use the + // unaligned values for the heap. + HeapRegion::setup_heap_region_size(InitialHeapSize, MaxHeapSize); HeapRegionRemSet::setup_remset_size(); G1ErgoVerbose::initialize(); if (PrintAdaptiveSizePolicy) { // Currently, we only use a single switch for all the heuristics.

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