RFR 8204947: Port ShenandoahTaskTerminator to mainline and make it default

Zhengyu Gu zgu at redhat.com
Thu Nov 29 03:26:20 UTC 2018

Webrev updated to suppress multiple copy constructors and assignment 
operators warnings on Window.

Webrev: http://cr.openjdk.java.net/~zgu/JDK-8204947/webrev.01/



On 11/28/18 2:08 PM, 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 depreciated.
> Bug: https://bugs.openjdk.java.net/browse/JDK-8204947
> Webrev: http://cr.openjdk.java.net/~zgu/JDK-8204947/webrev.00/
> Test:
>    hotspot_gc and vmTestbase_vm_gc on Linux 64.
> [1] Understanding and improving JVM GC work stealing at the data center 
> scale (http://dl.acm.org/citation.cfm?id=2926706)
> Thanks,
> -Zhengyu

More information about the hotspot-gc-dev mailing list