RFR 8215220: Simplify Shenandoah task termination in aborted paths

zgu at redhat.com zgu at redhat.com
Tue Dec 11 15:41:35 UTC 2018


During upstreaming ShenandoahTaskTermination and investigating
inconsistent termination states reported by Thomas Schatzl, I believe
we can simplify our termination logic.

First, no every worker has to offer termination in aborted paths.
Because, once the termination is aborted, it stays aborted until
workers rendezvous, so workers that offered termination will see
aborted condition sooner or later. Even some of workers terminated in
succeeded state, it still does not matter, since we re-check aborted
flag after workers rendezvous.

Second, JDK-8215047 does not affect this patch, since Shenandoah do not
reuse terminator. (I tested this patch with JDK-8215047 fixes for OWST
terminator, it passed tier1, 2, 3, shenandoah)


But this patch is quite dramatic, let's bake it for a day or two in
Shenandoah repo before upstreaming.

Bug: https://bugs.openjdk.java.net/browse/JDK-8215220
Webrev: http://cr.openjdk.java.net/~zgu/JDK-8215220/webrev.00/

Test:
 tier1, 2, 3 gc_shenandoah

Thanks,

-Zhengyu


More information about the shenandoah-dev mailing list