On 19 May 2015, at 18:55, Paul Sandoz <[email protected]> wrote:

> Hi,
> 
> https://bugs.openjdk.java.net/browse/JDK-8080623
> 
> diff -r ea3ca5cfc3c6 
> src/java.base/share/classes/java/util/concurrent/ForkJoinPool.java
> --- a/src/java.base/share/classes/java/util/concurrent/ForkJoinPool.java      
> Tue May 19 20:04:29 2015 +0300
> +++ b/src/java.base/share/classes/java/util/concurrent/ForkJoinPool.java      
> Tue May 19 19:54:00 2015 +0200
> @@ -1328,13 +1328,9 @@
>     /**
>      * Number of times to spin-wait before blocking. The spins (in
>      * awaitRunStateLock and awaitWork) currently use randomized
> -     * spins. If/when MWAIT-like intrinsics becomes available, they
> -     * may allow quieter spinning. The value of SPINS must be a power
> -     * of two, at least 4. The current value causes spinning for a
> -     * small fraction of typical context-switch times, well worthwhile
> -     * given the typical likelihoods that blocking is not necessary.
> +     * spins. Currently set to zero to reduce CPU usage.
>      */
> -    private static final int SPINS  = 1 << 11;
> +    private static final int SPINS  = 0;
> 
>     /**
>      * Increment for seed generators. See class ThreadLocal for
> 
> This is a quick fix from Doug to reduce the CPU usage in F/J computations 
> that was introduced with the fix for JDK-805624 to reduce thread 
> construction. Many thanks to Staffan Friberg for doing the performance work 
> and analysis.
> 
> The F/J pool makes a worker thread spin for a bit while waiting for more work 
> to become available rather than immediately blocking. This results in higher 
> CPU usage and can cause performance regressions since there is less CPU 
> resources available to other threads or applications.
> 
> The interim fix is to turn off spinning. This has the effect of making 
> questionable cases worse (e.g. parallel streams with an inappropriate small 
> number elements).
> 
> It will be back ported to 8u60 and it is planned that a better solution will 
> be introduced in 9 (and time permitting it may be possible to backport that).

Sounds like a reasonable plan.  The change looks ok, for now.

-Chris.

> Paul.

Reply via email to