RFR 8204947: Port ShenandoahTaskTerminator to mainline and make it default

Thomas Schatzl thomas.schatzl at oracle.com
Thu Nov 29 15:02:27 UTC 2018

Hi Zhengyu,

On Wed, 2018-11-28 at 14:08 -0500, Zhengyu Gu wrote:
> Hi,
> ShenandoahTaskTerminator is based on Google's work stealing
> protocol, described in paper [1]. The implementation diverges in a
> way to emphasize termination latency vs. power efficiency (see
> comments in code for details).
> Shenandoah switched to ShenandoahTaskTerminator as default
> terminator, shortly after it was implemented, and has been very
> stable since.
> On performance side, it showed better termination latency on almost
> all tests/benchmarks I ran, comparing to ParallelTaskTerminator. As
> the result, we (Shenandoah) purged fallback branches and uses it as
> the sole task terminator.
> This patch introduces a new experimental flag
> "UseOWSTTaskTerminator" (default: true), and switches G1 and Parallel
> GC to use it as default terminator. You can switch back to
> ParallelTaskTerminator with JVM option "-
> XX:+UnlockExperimentalVMOptions -XX:-UseOWSTTaskTerminator"
> I did not port it to CMS, as it is deprecated.

I submitted a job to push it through our testing infrastructure. I will
also run it through our perf benchmarks checking for issues.

As for CMS support, I would prefer to provide it - I need to see the
reasoning in the CR - while CMS is deprecated, we may not be able to
remove it in 13, while I would like to remove this flag independently
and earlier :)

With no CMS support for this task terminator we tie flag removal to CMS
removal probably needlessly.

I have no opinion on whether we should simply drop the
ParallelTaskTerminator, but since we need to have it in the code for
CMS anyway, it seems cheap to have for one release or so.


More information about the hotspot-gc-dev mailing list