RFR 8080623 CPU overhead in FJ due to spinning in awaitWork (original) (raw)

Paul Sandoz paul.sandoz at oracle.com
Wed May 20 09:28:45 UTC 2015


On May 20, 2015, at 9:07 AM, David Holmes <david.holmes at oracle.com> wrote:

On 20/05/2015 3:55 AM, Paul Sandoz 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. I'd keep the commentary even if disabling spinning at this time.

Some of removed commentary makes less sense given the motivation to set the value to zero. How about the following tweak:

 /**
  * Number of times to spin-wait before blocking. The spins (in
  * awaitRunStateLock and awaitWork) currently use randomized

Paul.



More information about the core-libs-dev mailing list