< prev index next >
src/share/vm/runtime/arguments.cpp
Print this page
rev 8615 : CMSParallelFullGC: Parallel version of CMS Full GC.
*** 1399,1408 ****
--- 1399,1414 ----
if (PrintGCDetails && Verbose) {
tty->print_cr("MarkStackSize: %uk MarkStackSizeMax: %uk",
(unsigned int) (MarkStackSize / K), (uint) (MarkStackSizeMax / K));
tty->print_cr("ConcGCThreads: %u", ConcGCThreads);
}
+
+ if (CMSParallelFullGC && ParallelGCThreads <= 1) {
+ // Disable CMSParallelFullGC if there is only one parallel
+ // GC thread.
+ CMSParallelFullGC = false;
+ }
}
#endif // INCLUDE_ALL_GCS
void set_object_alignment() {
// Object alignment.
*** 2086,2095 ****
--- 2092,2116 ----
FLAG_SET_DEFAULT(UseGCOverheadLimit, false);
}
status = status && check_gc_consistency();
+ if (CMSParallelFullGC) {
+ if (!UseConcMarkSweepGC) {
+ // The CMS collector (-XX:+UseConcMarkSweepGC) must be
+ // selected in order to use CMSParallelFullGC.
+ if (FLAG_IS_CMDLINE(CMSParallelFullGC)) {
+ jio_fprintf(defaultStream::error_stream(),
+ "error: invalid argument combination.\n"
+ "The CMS collector (-XX:+UseConcMarkSweepGC) must be "
+ "selected in order\nto use CMSParallelFullGC.\n");
+ status = false;
+ }
+ FLAG_SET_DEFAULT(CMSParallelFullGC, false);
+ }
+ }
+
// CMS space iteration, which FLSVerifyAllHeapreferences entails,
// insists that we hold the requisite locks so that the iteration is
// MT-safe. For the verification at start-up and shut-down, we don't
// yet have a good way of acquiring and releasing these locks,
// which are not visible at the CollectedHeap level. We want to
< prev index next >