changeset 1094:9118860519b6

6904967: G1: some CollectionUsageThreshold tests fail Summary: ensure that max and committed are non-zero (currently: at least as large as the region size). Reviewed-by: iveresov, mchung
author tonyp
date Mon, 07 Dec 2009 14:22:34 -0500
parents afc30fccf324
children 7bfd295ec074
files src/share/vm/services/g1MemoryPool.cpp
diffstat 1 files changed, 8 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/share/vm/services/g1MemoryPool.cpp	Fri Dec 04 07:44:41 2009 -0500
+++ b/src/share/vm/services/g1MemoryPool.cpp	Mon Dec 07 14:22:34 2009 -0500
@@ -40,7 +40,7 @@
 
 // See the comment at the top of g1MemoryPool.hpp
 size_t G1MemoryPoolSuper::eden_space_committed(G1CollectedHeap* g1h) {
-  return eden_space_used(g1h);
+  return MAX2(eden_space_used(g1h), (size_t) HeapRegion::GrainBytes);
 }
 
 // See the comment at the top of g1MemoryPool.hpp
@@ -54,12 +54,14 @@
 
 // See the comment at the top of g1MemoryPool.hpp
 size_t G1MemoryPoolSuper::eden_space_max(G1CollectedHeap* g1h) {
+  // This should ensure that it returns a value no smaller than the
+  // region size. Currently, eden_space_committed() guarantees that.
   return eden_space_committed(g1h);
 }
 
 // See the comment at the top of g1MemoryPool.hpp
 size_t G1MemoryPoolSuper::survivor_space_committed(G1CollectedHeap* g1h) {
-  return survivor_space_used(g1h);
+  return MAX2(survivor_space_used(g1h), (size_t) HeapRegion::GrainBytes);
 }
 
 // See the comment at the top of g1MemoryPool.hpp
@@ -71,6 +73,8 @@
 
 // See the comment at the top of g1MemoryPool.hpp
 size_t G1MemoryPoolSuper::survivor_space_max(G1CollectedHeap* g1h) {
+  // This should ensure that it returns a value no smaller than the
+  // region size. Currently, survivor_space_committed() guarantees that.
   return survivor_space_committed(g1h);
 }
 
@@ -81,6 +85,7 @@
   size_t survivor_committed = survivor_space_committed(g1h);
   committed = subtract_up_to_zero(committed, eden_committed);
   committed = subtract_up_to_zero(committed, survivor_committed);
+  committed = MAX2(committed, (size_t) HeapRegion::GrainBytes);
   return committed;
 }
 
@@ -101,6 +106,7 @@
   size_t survivor_max = survivor_space_max(g1h);
   max = subtract_up_to_zero(max, eden_max);
   max = subtract_up_to_zero(max, survivor_max);
+  max = MAX2(max, (size_t) HeapRegion::GrainBytes);
   return max;
 }