7112413: JVM Crash, possibly GC-related
Summary: disable UseAdaptiveSizePolicy with the CMS and ParNew
Reviewed-by: johnc, brutisso
--- a/hotspot/src/share/vm/runtime/arguments.cpp Wed Jan 25 12:58:23 2012 -0500
+++ b/hotspot/src/share/vm/runtime/arguments.cpp Wed Jan 25 21:14:11 2012 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -1040,6 +1040,16 @@
}
#ifndef KERNEL
+static void disable_adaptive_size_policy(const char* collector_name) {
+ if (UseAdaptiveSizePolicy) {
+ if (FLAG_IS_CMDLINE(UseAdaptiveSizePolicy)) {
+ warning("disabling UseAdaptiveSizePolicy; it is incompatible with %s.",
+ collector_name);
+ }
+ FLAG_SET_DEFAULT(UseAdaptiveSizePolicy, false);
+ }
+}
+
// If the user has chosen ParallelGCThreads > 0, we set UseParNewGC
// if it's not explictly set or unset. If the user has chosen
// UseParNewGC and not explicitly set ParallelGCThreads we
@@ -1049,11 +1059,8 @@
"control point invariant");
assert(UseParNewGC, "Error");
- // Turn off AdaptiveSizePolicy by default for parnew until it is
- // complete.
- if (FLAG_IS_DEFAULT(UseAdaptiveSizePolicy)) {
- FLAG_SET_DEFAULT(UseAdaptiveSizePolicy, false);
- }
+ // Turn off AdaptiveSizePolicy for parnew until it is complete.
+ disable_adaptive_size_policy("UseParNewGC");
if (ParallelGCThreads == 0) {
FLAG_SET_DEFAULT(ParallelGCThreads,
@@ -1110,11 +1117,8 @@
FLAG_SET_ERGO(bool, UseParNewGC, true);
}
- // Turn off AdaptiveSizePolicy by default for cms until it is
- // complete.
- if (FLAG_IS_DEFAULT(UseAdaptiveSizePolicy)) {
- FLAG_SET_DEFAULT(UseAdaptiveSizePolicy, false);
- }
+ // Turn off AdaptiveSizePolicy for CMS until it is complete.
+ disable_adaptive_size_policy("UseConcMarkSweepGC");
// In either case, adjust ParallelGCThreads and/or UseParNewGC
// as needed.