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
- Previous message: RFR 8080623 CPU overhead in FJ due to spinning in awaitWork
- Next message: RFR 8080623 CPU overhead in FJ due to spinning in awaitWork
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
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
* 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.
*
* If greater than zero the value of SPINS must be a power
* of two, at least 4. A value of 2048 causes spinning for a
* small fraction of typical context-switch times.
*
* If/when MWAIT-like intrinsics becomes available, they
* may allow quieter spinning. */
- private static final int SPINS = 1 << 11;
- private static final int SPINS = 0;
Paul.
- Previous message: RFR 8080623 CPU overhead in FJ due to spinning in awaitWork
- Next message: RFR 8080623 CPU overhead in FJ due to spinning in awaitWork
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]