< prev index next >

src/share/vm/runtime/arguments.cpp

Print this page
rev 10500 : [backport] Rework ClassUnloading* flags handling
rev 10502 : [backport] ClassUnloadingWithConcurrentMark should be opt-in with Shenandoah
rev 10516 : [backport] Disable UseFastJNIAccessors for Shenandoah
rev 10583 : [backport] TLAB sizing policy should converge faster with Shenandoah
rev 10588 : [backport] Check and ensure that Shenandoah-enabled compilations succeed
* * *
[backport] Filter out not compilable methods to avoid false assertion
rev 10589 : [backport] Purge support for ShenandoahConcurrentEvacCodeRoots and ShenandoahBarriersForConst
rev 10592 : [backport] Fix Minimal and Zero builds
rev 10638 : [backport] Remove NMethodSizeLimit adjustment for Shenandoah

*** 1832,1841 **** --- 1832,1877 ---- if (!FLAG_IS_DEFAULT(ShenandoahUncommit)) { warning("AlwaysPreTouch is enabled, disabling ShenandoahUncommit"); } FLAG_SET_DEFAULT(ShenandoahUncommit, false); } + + // If class unloading is disabled, no unloading for concurrent cycles as well. + // If class unloading is enabled, users should opt-in for unloading during + // concurrent cycles. + if (!ClassUnloading || !FLAG_IS_CMDLINE(ClassUnloadingWithConcurrentMark)) { + if (PrintGC) { + tty->print_cr("Consider -XX:+ClassUnloadingWithConcurrentMark if large pause times " + "are observed on class-unloading sensitive workloads"); + } + FLAG_SET_DEFAULT(ClassUnloadingWithConcurrentMark, false); + } + + // JNI fast get field stuff is not currently supported by Shenandoah. + // It would introduce another heap memory access for reading the forwarding + // pointer, which would have to be guarded by the signal handler machinery. + // See: + // http://mail.openjdk.java.net/pipermail/hotspot-dev/2018-June/032763.html + FLAG_SET_DEFAULT(UseFastJNIAccessors, false); + + // TLAB sizing policy makes resizing decisions before each GC cycle. It averages + // historical data, assigning more recent data the weight according to TLABAllocationWeight. + // Current default is good for generational collectors that run frequent young GCs. + // With Shenandoah, GC cycles are much less frequent, so we need we need sizing policy + // to converge faster over smaller number of resizing decisions. + if (FLAG_IS_DEFAULT(TLABAllocationWeight)) { + FLAG_SET_DEFAULT(TLABAllocationWeight, 90); + } + + // Shenandoah needs more C2 nodes to compile some methods with lots of barriers. + // NodeLimitFudgeFactor needs to stay the same relative to MaxNodeLimit. + #ifdef COMPILER2 + if (FLAG_IS_DEFAULT(MaxNodeLimit)) { + FLAG_SET_DEFAULT(MaxNodeLimit, MaxNodeLimit * 3); + FLAG_SET_DEFAULT(NodeLimitFudgeFactor, NodeLimitFudgeFactor * 3); + } + #endif #endif } #if !INCLUDE_ALL_GCS #ifdef ASSERT
*** 2156,2184 **** if (FLAG_IS_DEFAULT(LogEventsBufferEntries)) { FLAG_SET_DEFAULT(LogEventsBufferEntries, 250); } #if INCLUDE_ALL_GCS - if (ShenandoahConcurrentEvacCodeRoots) { - if (!ShenandoahBarriersForConst) { - if (FLAG_IS_DEFAULT(ShenandoahBarriersForConst)) { - warning("Concurrent code cache evacuation is enabled, enabling barriers for constants."); - FLAG_SET_DEFAULT(ShenandoahBarriersForConst, true); - } else { - warning("Concurrent code cache evacuation is enabled, but barriers for constants are disabled. " - "This may lead to surprising crashes."); - } - } - } else { - if (ShenandoahBarriersForConst) { - if (FLAG_IS_DEFAULT(ShenandoahBarriersForConst)) { - warning("Concurrent code cache evacuation is disabled, disabling barriers for constants."); - FLAG_SET_DEFAULT(ShenandoahBarriersForConst, false); - } - } - } - if (AlwaysPreTouch || ShenandoahAlwaysPreTouch) { if (!FLAG_IS_DEFAULT(ShenandoahUncommitDelay)) { warning("AlwaysPreTouch is enabled, disabling ShenandoahUncommitDelay"); } FLAG_SET_DEFAULT(ShenandoahUncommitDelay, max_uintx); --- 2192,2201 ----
< prev index next >