< prev index next >
src/hotspot/share/gc/shared/jvmFlagConstraintsGC.cpp
Print this page
rev 49911 : imported patch removeAllGCs
@@ -23,10 +23,11 @@
*/
#include "precompiled.hpp"
#include "gc/shared/collectedHeap.hpp"
#include "gc/shared/collectorPolicy.hpp"
+#include "gc/shared/gcConfig.hpp"
#include "gc/shared/jvmFlagConstraintsGC.hpp"
#include "gc/shared/plab.hpp"
#include "gc/shared/threadLocalAllocBuffer.hpp"
#include "runtime/arguments.hpp"
#include "runtime/flags/jvmFlagRangeList.hpp"
@@ -34,13 +35,17 @@
#include "runtime/globals_extension.hpp"
#include "runtime/thread.inline.hpp"
#include "utilities/align.hpp"
#include "utilities/defaultStream.hpp"
#include "utilities/macros.hpp"
-#if INCLUDE_ALL_GCS
+#if INCLUDE_CMSGC
#include "gc/cms/jvmFlagConstraintsCMS.hpp"
+#endif
+#if INCLUDE_G1GC
#include "gc/g1/jvmFlagConstraintsG1.hpp"
+#endif
+#if INCLUDE_PARALLELGC
#include "gc/parallel/jvmFlagConstraintsParallel.hpp"
#endif
#ifdef COMPILER1
#include "c1/c1_globals.hpp"
#endif // COMPILER1
@@ -58,16 +63,18 @@
// As ParallelGCThreads differs among GC modes, we need constraint function.
JVMFlag::Error ParallelGCThreadsConstraintFunc(uint value, bool verbose) {
JVMFlag::Error status = JVMFlag::SUCCESS;
-#if INCLUDE_ALL_GCS
+#if INCLUDE_PARALLELGC
status = ParallelGCThreadsConstraintFuncParallel(value, verbose);
if (status != JVMFlag::SUCCESS) {
return status;
}
+#endif
+#if INCLUDE_CMSGC
status = ParallelGCThreadsConstraintFuncCMS(value, verbose);
if (status != JVMFlag::SUCCESS) {
return status;
}
#endif
@@ -76,46 +83,48 @@
}
// As ConcGCThreads should be smaller than ParallelGCThreads,
// we need constraint function.
JVMFlag::Error ConcGCThreadsConstraintFunc(uint value, bool verbose) {
-#if INCLUDE_ALL_GCS
// CMS and G1 GCs use ConcGCThreads.
- if ((UseConcMarkSweepGC || UseG1GC) && (value > ParallelGCThreads)) {
+ if ((GCConfig::is_gc_selected(CollectedHeap::CMS) ||
+ GCConfig::is_gc_selected(CollectedHeap::G1)) && (value > ParallelGCThreads)) {
CommandLineError::print(verbose,
"ConcGCThreads (" UINT32_FORMAT ") must be "
"less than or equal to ParallelGCThreads (" UINT32_FORMAT ")\n",
value, ParallelGCThreads);
return JVMFlag::VIOLATES_CONSTRAINT;
}
-#endif
+
return JVMFlag::SUCCESS;
}
static JVMFlag::Error MinPLABSizeBounds(const char* name, size_t value, bool verbose) {
-#if INCLUDE_ALL_GCS
- if ((UseConcMarkSweepGC || UseG1GC || UseParallelGC) && (value < PLAB::min_size())) {
+ if ((GCConfig::is_gc_selected(CollectedHeap::CMS) ||
+ GCConfig::is_gc_selected(CollectedHeap::G1) ||
+ GCConfig::is_gc_selected(CollectedHeap::Parallel)) && (value < PLAB::min_size())) {
CommandLineError::print(verbose,
"%s (" SIZE_FORMAT ") must be "
"greater than or equal to ergonomic PLAB minimum size (" SIZE_FORMAT ")\n",
name, value, PLAB::min_size());
return JVMFlag::VIOLATES_CONSTRAINT;
}
-#endif // INCLUDE_ALL_GCS
+
return JVMFlag::SUCCESS;
}
JVMFlag::Error MaxPLABSizeBounds(const char* name, size_t value, bool verbose) {
-#if INCLUDE_ALL_GCS
- if ((UseConcMarkSweepGC || UseG1GC || UseParallelGC) && (value > PLAB::max_size())) {
+ if ((GCConfig::is_gc_selected(CollectedHeap::CMS) ||
+ GCConfig::is_gc_selected(CollectedHeap::G1) ||
+ GCConfig::is_gc_selected(CollectedHeap::Parallel)) && (value > PLAB::max_size())) {
CommandLineError::print(verbose,
"%s (" SIZE_FORMAT ") must be "
"less than or equal to ergonomic PLAB maximum size (" SIZE_FORMAT ")\n",
name, value, PLAB::max_size());
return JVMFlag::VIOLATES_CONSTRAINT;
}
-#endif // INCLUDE_ALL_GCS
+
return JVMFlag::SUCCESS;
}
static JVMFlag::Error MinMaxPLABSizeBounds(const char* name, size_t value, bool verbose) {
JVMFlag::Error status = MinPLABSizeBounds(name, value, verbose);
@@ -131,17 +140,19 @@
}
JVMFlag::Error OldPLABSizeConstraintFunc(size_t value, bool verbose) {
JVMFlag::Error status = JVMFlag::SUCCESS;
-#if INCLUDE_ALL_GCS
+#if INCLUDE_CMSGC
if (UseConcMarkSweepGC) {
return OldPLABSizeConstraintFuncCMS(value, verbose);
- } else {
+ } else
+#endif
+ {
status = MinMaxPLABSizeBounds("OldPLABSize", value, verbose);
}
-#endif
+
return status;
}
JVMFlag::Error MinHeapFreeRatioConstraintFunc(uintx value, bool verbose) {
if (value > MaxHeapFreeRatio) {
@@ -219,22 +230,22 @@
return JVMFlag::SUCCESS;
}
}
JVMFlag::Error InitialTenuringThresholdConstraintFunc(uintx value, bool verbose) {
-#if INCLUDE_ALL_GCS
+#if INCLUDE_PARALLELGC
JVMFlag::Error status = InitialTenuringThresholdConstraintFuncParallel(value, verbose);
if (status != JVMFlag::SUCCESS) {
return status;
}
#endif
return JVMFlag::SUCCESS;
}
JVMFlag::Error MaxTenuringThresholdConstraintFunc(uintx value, bool verbose) {
-#if INCLUDE_ALL_GCS
+#if INCLUDE_PARALLELGC
JVMFlag::Error status = MaxTenuringThresholdConstraintFuncParallel(value, verbose);
if (status != JVMFlag::SUCCESS) {
return status;
}
#endif
@@ -251,22 +262,22 @@
}
return JVMFlag::SUCCESS;
}
JVMFlag::Error MaxGCPauseMillisConstraintFunc(uintx value, bool verbose) {
-#if INCLUDE_ALL_GCS
+#if INCLUDE_G1GC
JVMFlag::Error status = MaxGCPauseMillisConstraintFuncG1(value, verbose);
if (status != JVMFlag::SUCCESS) {
return status;
}
#endif
return JVMFlag::SUCCESS;
}
JVMFlag::Error GCPauseIntervalMillisConstraintFunc(uintx value, bool verbose) {
-#if INCLUDE_ALL_GCS
+#if INCLUDE_G1GC
JVMFlag::Error status = GCPauseIntervalMillisConstraintFuncG1(value, verbose);
if (status != JVMFlag::SUCCESS) {
return status;
}
#endif
@@ -300,11 +311,11 @@
}
static JVMFlag::Error MaxSizeForHeapAlignment(const char* name, size_t value, bool verbose) {
size_t heap_alignment;
-#if INCLUDE_ALL_GCS
+#if INCLUDE_G1GC
if (UseG1GC) {
// For G1 GC, we don't know until G1CollectorPolicy is created.
heap_alignment = MaxSizeForHeapAlignmentG1();
} else
#endif
@@ -341,11 +352,11 @@
return MaxSizeForHeapAlignment("HeapBaseMinAddress", value, verbose);
}
JVMFlag::Error NewSizeConstraintFunc(size_t value, bool verbose) {
-#if INCLUDE_ALL_GCS
+#if INCLUDE_G1GC
JVMFlag::Error status = NewSizeConstraintFuncG1(value, verbose);
if (status != JVMFlag::SUCCESS) {
return status;
}
#endif
< prev index next >