hotspot/src/share/vm/runtime/arguments.cpp
changeset 3700 cf9a1b408c4f
parent 3687 7530897778c5
child 3912 3aaaaad1ccb0
--- a/hotspot/src/share/vm/runtime/arguments.cpp	Thu Sep 03 19:21:55 2009 -0700
+++ b/hotspot/src/share/vm/runtime/arguments.cpp	Thu Sep 10 16:46:17 2009 -0700
@@ -1450,6 +1450,7 @@
   FLAG_SET_DEFAULT(UseSerialGC, true);
   FLAG_SET_DEFAULT(UseParNewGC, false);
   FLAG_SET_DEFAULT(UseConcMarkSweepGC, false);
+  FLAG_SET_DEFAULT(CMSIncrementalMode, false);  // special CMS suboption
   FLAG_SET_DEFAULT(UseParallelGC, false);
   FLAG_SET_DEFAULT(UseParallelOldGC, false);
   FLAG_SET_DEFAULT(UseG1GC, false);
@@ -1457,7 +1458,7 @@
 
 static bool verify_serial_gc_flags() {
   return (UseSerialGC &&
-        !(UseParNewGC || UseConcMarkSweepGC || UseG1GC ||
+        !(UseParNewGC || (UseConcMarkSweepGC || CMSIncrementalMode) || UseG1GC ||
           UseParallelGC || UseParallelOldGC));
 }
 
@@ -1572,7 +1573,7 @@
   status = status && verify_percentage(GCHeapFreeLimit, "GCHeapFreeLimit");
 
   // Check user specified sharing option conflict with Parallel GC
-  bool cannot_share = (UseConcMarkSweepGC || UseG1GC || UseParNewGC ||
+  bool cannot_share = ((UseConcMarkSweepGC || CMSIncrementalMode) || UseG1GC || UseParNewGC ||
                        UseParallelGC || UseParallelOldGC ||
                        SOLARIS_ONLY(UseISM) NOT_SOLARIS(UseLargePages));
 
@@ -1580,9 +1581,17 @@
     // Either force sharing on by forcing the other options off, or
     // force sharing off.
     if (DumpSharedSpaces || ForceSharedSpaces) {
+      jio_fprintf(defaultStream::error_stream(),
+                  "Reverting to Serial GC because of %s \n",
+                  ForceSharedSpaces ? " -Xshare:on" : "-Xshare:dump");
       set_serial_gc_flags();
       FLAG_SET_DEFAULT(SOLARIS_ONLY(UseISM) NOT_SOLARIS(UseLargePages), false);
     } else {
+      if (UseSharedSpaces) {
+        jio_fprintf(defaultStream::error_stream(),
+                    "Turning off use of shared archive because of "
+                    "choice of garbage collector or large pages \n");
+      }
       no_shared_spaces();
     }
   }