hotspot/src/share/vm/gc_implementation/parallelScavenge/generationSizer.cpp
changeset 25355 29c97629997e
parent 24941 4ebbe176a7b1
child 25366 8b8061f353ee
--- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/generationSizer.cpp	Mon Jun 23 14:20:20 2014 -0700
+++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/generationSizer.cpp	Tue Jun 24 15:50:50 2014 +0200
@@ -66,9 +66,10 @@
 
 void GenerationSizer::initialize_size_info() {
   trace_gen_sizes("ps heap raw");
-  const size_t page_sz = os::page_size_for_region(_min_heap_byte_size,
-                                                  _max_heap_byte_size,
-                                                  8);
+  const size_t max_page_sz = os::page_size_for_region(_max_heap_byte_size, 8);
+  const size_t min_pages = 4; // 1 for eden + 1 for each survivor + 1 for old
+  const size_t min_page_sz = os::page_size_for_region(_min_heap_byte_size, min_pages);
+  const size_t page_sz = MIN2(max_page_sz, min_page_sz);
 
   // Can a page size be something else than a power of two?
   assert(is_power_of_2((intptr_t)page_sz), "must be a power of 2");