< prev index next >
src/share/vm/runtime/arguments.cpp
Print this page
rev 10654 : [backport] Disable ShHeapUncommit on too-large large-pages
rev 10668 : [backport] Cleanup buffered queue handling
rev 10691 : Fix Minimal VM build
rev 10708 : [backport] Make sure debug builds fail predictably on safepoint timeout
rev 10730 : [backport] Enable NUMA by default
@@ -63,10 +63,12 @@
#include "gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.hpp"
#include "gc_implementation/g1/g1CollectedHeap.inline.hpp"
#include "gc_implementation/parallelScavenge/parallelScavengeHeap.hpp"
#include "gc_implementation/shenandoah/shenandoahHeap.hpp"
#include "gc_implementation/shenandoah/shenandoahLogging.hpp"
+#include "gc_implementation/shenandoah/shenandoahHeapRegion.hpp"
+#include "gc_implementation/shenandoah/shenandoahTaskqueue.hpp"
#endif // INCLUDE_ALL_GCS
// Note: This is a special bug reporting site for the JVM
#define DEFAULT_VENDOR_URL_BUG "http://bugreport.java.com/bugreport/crash.jsp"
#define DEFAULT_JAVA_LAUNCHER "generic"
@@ -1771,10 +1773,26 @@
ObjArrayChunkedTask::max_addressable(), MaxHeapSize);
vm_exit(1);
}
#endif
+#if INCLUDE_ALL_GCS
+ if (UseLargePages && (MaxHeapSize / os::large_page_size()) < ShenandoahHeapRegion::MIN_NUM_REGIONS) {
+ warning("Large pages size (" SIZE_FORMAT "K) is too large to afford page-sized regions, disabling uncommit",
+ os::large_page_size() / K);
+ FLAG_SET_DEFAULT(ShenandoahUncommit, false);
+ }
+#endif
+
+ // Enable NUMA by default. While Shenandoah is not NUMA-aware, enabling NUMA makes
+ // storage allocation code NUMA-aware, and NUMA interleaving makes the storage
+ // allocated in consistent manner (interleaving) to minimize run-to-run variance.
+ if (FLAG_IS_DEFAULT(UseNUMA)) {
+ FLAG_SET_DEFAULT(UseNUMA, true);
+ FLAG_SET_DEFAULT(UseNUMAInterleaving, true);
+ }
+
FLAG_SET_DEFAULT(ParallelGCThreads,
Abstract_VM_Version::parallel_worker_threads());
if (FLAG_IS_DEFAULT(ConcGCThreads)) {
uint conc_threads = MAX2((uint) 1, (uint)ParallelGCThreads);
@@ -1869,10 +1887,20 @@
FLAG_SET_DEFAULT(MaxNodeLimit, MaxNodeLimit * 3);
FLAG_SET_DEFAULT(NodeLimitFudgeFactor, NodeLimitFudgeFactor * 3);
}
#endif
#endif
+
+ // Make sure safepoint deadlocks are failing predictably. This sets up VM to report
+ // fatal error after 10 seconds of wait for safepoint syncronization (not the VM
+ // operation itself). There is no good reason why Shenandoah would spend that
+ // much time synchronizing.
+#ifdef ASSERT
+ FLAG_SET_DEFAULT(SafepointTimeout, true);
+ FLAG_SET_DEFAULT(SafepointTimeoutDelay, 10000);
+ FLAG_SET_DEFAULT(DieOnSafepointTimeout, true);
+#endif
}
#if !INCLUDE_ALL_GCS
#ifdef ASSERT
static bool verify_serial_gc_flags() {
< prev index next >