< prev index next >

src/share/vm/gc_implementation/parallelScavenge/generationSizer.cpp

Print this page
rev 7526 : 8066875: VirtualSpace does not use large pages (01)


  44 }
  45 
  46 void GenerationSizer::initialize_flags() {
  47   // Do basic sizing work
  48   GenCollectorPolicy::initialize_flags();
  49 
  50   // The survivor ratio's are calculated "raw", unlike the
  51   // default gc, which adds 2 to the ratio value. We need to
  52   // make sure the values are valid before using them.
  53   if (MinSurvivorRatio < 3) {
  54     FLAG_SET_ERGO(uintx, MinSurvivorRatio, 3);
  55   }
  56 
  57   if (InitialSurvivorRatio < 3) {
  58     FLAG_SET_ERGO(uintx, InitialSurvivorRatio, 3);
  59   }
  60 }
  61 
  62 void GenerationSizer::initialize_size_info() {
  63   trace_gen_sizes("ps heap raw");
  64   const size_t max_page_sz = os::page_size_for_region(_max_heap_byte_size, 8);
  65   const size_t min_pages = 4; // 1 for eden + 1 for each survivor + 1 for old
  66   const size_t min_page_sz = os::page_size_for_region(_min_heap_byte_size, min_pages);
  67   const size_t page_sz = MIN2(max_page_sz, min_page_sz);
  68 
  69   // Can a page size be something else than a power of two?
  70   assert(is_power_of_2((intptr_t)page_sz), "must be a power of 2");
  71   size_t new_alignment = round_to(page_sz, _gen_alignment);
  72   if (new_alignment != _gen_alignment) {
  73     _gen_alignment = new_alignment;
  74     _space_alignment = new_alignment;
  75     // Redo everything from the start
  76     initialize_flags();
  77   }
  78   GenCollectorPolicy::initialize_size_info();
  79 
  80   trace_gen_sizes("ps heap rnd");
  81 }


  44 }
  45 
  46 void GenerationSizer::initialize_flags() {
  47   // Do basic sizing work
  48   GenCollectorPolicy::initialize_flags();
  49 
  50   // The survivor ratio's are calculated "raw", unlike the
  51   // default gc, which adds 2 to the ratio value. We need to
  52   // make sure the values are valid before using them.
  53   if (MinSurvivorRatio < 3) {
  54     FLAG_SET_ERGO(uintx, MinSurvivorRatio, 3);
  55   }
  56 
  57   if (InitialSurvivorRatio < 3) {
  58     FLAG_SET_ERGO(uintx, InitialSurvivorRatio, 3);
  59   }
  60 }
  61 
  62 void GenerationSizer::initialize_size_info() {
  63   trace_gen_sizes("ps heap raw");
  64   const size_t max_page_sz = os::page_size_for_region_aligned(_max_heap_byte_size, 8);
  65   const size_t min_pages = 4; // 1 for eden + 1 for each survivor + 1 for old
  66   const size_t min_page_sz = os::page_size_for_region_aligned(_min_heap_byte_size, min_pages);
  67   const size_t page_sz = MIN2(max_page_sz, min_page_sz);
  68 
  69   // Can a page size be something else than a power of two?
  70   assert(is_power_of_2((intptr_t)page_sz), "must be a power of 2");
  71   size_t new_alignment = round_to(page_sz, _gen_alignment);
  72   if (new_alignment != _gen_alignment) {
  73     _gen_alignment = new_alignment;
  74     _space_alignment = new_alignment;
  75     // Redo everything from the start
  76     initialize_flags();
  77   }
  78   GenCollectorPolicy::initialize_size_info();
  79 
  80   trace_gen_sizes("ps heap rnd");
  81 }
< prev index next >