8080623: CPU overhead in FJ due to spinning in awaitWork
Reviewed-by: chegar, dholmes
This commit is contained in:
parent
216d24980d
commit
8654e36410
@ -1328,13 +1328,16 @@ public class ForkJoinPool extends AbstractExecutorService {
|
||||
/**
|
||||
* 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;
|
||||
|
||||
/**
|
||||
* Increment for seed generators. See class ThreadLocal for
|
||||
|
Loading…
x
Reference in New Issue
Block a user