RFR: Temporarily disable ThreadLocalHandshakes with Shenandoah
Roman Kennke
rkennke at redhat.com
Thu Feb 22 12:21:27 UTC 2018
Yes please
On Thu, Feb 22, 2018 at 1:18 PM, Aleksey Shipilev <shade at redhat.com> wrote:
> We have been following up on some weird compiler-related failures in sh/jdk10 and sh/jdk, and we
> narrowed it down to interaction with C2 and ThreadLocalHandshakes. The problem is that TLH are
> enabled by default, and we got that during recent sh/jdk10 merge. Let us disable TLH for a while,
> until the problem is resolved:
>
> diff -r cb3852700339 src/hotspot/share/gc/shenandoah/shenandoahArguments.cpp
> --- a/src/hotspot/share/gc/shenandoah/shenandoahArguments.cpp Thu Feb 22 10:34:43 2018 +0100
> +++ b/src/hotspot/share/gc/shenandoah/shenandoahArguments.cpp Thu Feb 22 13:15:32 2018 +0100
> @@ -102,6 +102,18 @@
> FLAG_SET_DEFAULT(ShenandoahAlwaysPreTouch, true);
> }
>
> + // Shenandoah C2 optimizations apparently dislike the shape of thread-local handshakes.
> + // Disable it by default, unless we enable it specifically for debugging.
> + if (FLAG_IS_DEFAULT(ThreadLocalHandshakes)) {
> + if (ThreadLocalHandshakes) {
> + FLAG_SET_DEFAULT(ThreadLocalHandshakes, false);
> + }
> + } else {
> + if (ThreadLocalHandshakes) {
> + warning("Thread-local handshakes are not working correctly with Shenandoah at the moment.
> Enable at your own risk.");
> + }
> + }
> +
> if (ShenandoahConcurrentEvacCodeRoots) {
> if (!ShenandoahBarriersForConst) {
> if (FLAG_IS_DEFAULT(ShenandoahBarriersForConst)) {
> diff -r cb3852700339 src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp
> --- a/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp Thu Feb 22 10:34:43 2018 +0100
> +++ b/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp Thu Feb 22 13:15:32 2018 +0100
> @@ -332,6 +332,10 @@
>
> ShenandoahCodeRoots::initialize();
>
> + log_info(gc, init)("Safepointing mechanism: %s",
> + SafepointMechanism::uses_thread_local_poll() ? "thread-local poll" :
> + (SafepointMechanism::uses_global_page_poll() ? "global-page poll" : "unknown"));
> +
> return JNI_OK;
> }
>
> Testing: hotspot_gc_shenandoah
>
> Thanks,
> -Aleksey
>
More information about the shenandoah-dev
mailing list