--- a/hotspot/src/share/vm/runtime/arguments.cpp Wed Feb 13 08:42:03 2013 -0800
+++ b/hotspot/src/share/vm/runtime/arguments.cpp Thu Feb 14 11:01:05 2013 +0100
@@ -1257,7 +1257,7 @@
// prefer minuscule survivor spaces so as not to waste
// space for (non-existent) survivors
if (FLAG_IS_DEFAULT(SurvivorRatio) && MaxTenuringThreshold == 0) {
- FLAG_SET_ERGO(intx, SurvivorRatio, MAX2((intx)1024, SurvivorRatio));
+ FLAG_SET_ERGO(uintx, SurvivorRatio, MAX2((uintx)1024, SurvivorRatio));
}
// If OldPLABSize is set and CMSParPromoteBlocksToClaim is not,
// set CMSParPromoteBlocksToClaim equal to OldPLABSize.
@@ -1897,6 +1897,24 @@
// Keeping the heap 100% free is hard ;-) so limit it to 99%.
MinHeapFreeRatio = MIN2(MinHeapFreeRatio, (uintx) 99);
+ // Min/MaxMetaspaceFreeRatio
+ status = status && verify_percentage(MinMetaspaceFreeRatio, "MinMetaspaceFreeRatio");
+ status = status && verify_percentage(MaxMetaspaceFreeRatio, "MaxMetaspaceFreeRatio");
+
+ if (MinMetaspaceFreeRatio > MaxMetaspaceFreeRatio) {
+ jio_fprintf(defaultStream::error_stream(),
+ "MinMetaspaceFreeRatio (%s" UINTX_FORMAT ") must be less than or "
+ "equal to MaxMetaspaceFreeRatio (%s" UINTX_FORMAT ")\n",
+ FLAG_IS_DEFAULT(MinMetaspaceFreeRatio) ? "Default: " : "",
+ MinMetaspaceFreeRatio,
+ FLAG_IS_DEFAULT(MaxMetaspaceFreeRatio) ? "Default: " : "",
+ MaxMetaspaceFreeRatio);
+ status = false;
+ }
+
+ // Trying to keep 100% free is not practical
+ MinMetaspaceFreeRatio = MIN2(MinMetaspaceFreeRatio, (uintx) 99);
+
if (FullGCALot && FLAG_IS_DEFAULT(MarkSweepAlwaysCompactCount)) {
MarkSweepAlwaysCompactCount = 1; // Move objects every gc.
}
@@ -1904,7 +1922,7 @@
if (UseParallelOldGC && ParallelOldGCSplitALot) {
// Settings to encourage splitting.
if (!FLAG_IS_CMDLINE(NewRatio)) {
- FLAG_SET_CMDLINE(intx, NewRatio, 2);
+ FLAG_SET_CMDLINE(uintx, NewRatio, 2);
}
if (!FLAG_IS_CMDLINE(ScavengeBeforeFullGC)) {
FLAG_SET_CMDLINE(bool, ScavengeBeforeFullGC, false);