re PR libgomp/43706 (scheduling two threads on one core leads to starvation)
PR libgomp/43706 * env.c (initialize_env): Default to spin count 300000 instead of 20000000 if neither OMP_WAIT_POLICY nor GOMP_SPINCOUNT is specified. From-SVN: r167371
This commit is contained in:
parent
b7516041a1
commit
4c698cf891
@ -1,5 +1,10 @@
|
||||
2010-12-02 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR libgomp/43706
|
||||
* env.c (initialize_env): Default to spin count 300000
|
||||
instead of 20000000 if neither OMP_WAIT_POLICY nor GOMP_SPINCOUNT
|
||||
is specified.
|
||||
|
||||
PR libgomp/45240
|
||||
* parallel.c (GOMP_parallel_end): Unlock gomp_remaining_threads_lock
|
||||
at the end if sync builtins aren't supported.
|
||||
|
@ -502,14 +502,14 @@ initialize_env (void)
|
||||
{
|
||||
/* Using a rough estimation of 100000 spins per msec,
|
||||
use 5 min blocking for OMP_WAIT_POLICY=active,
|
||||
200 msec blocking when OMP_WAIT_POLICY is not specificed
|
||||
3 msec blocking when OMP_WAIT_POLICY is not specificed
|
||||
and 0 when OMP_WAIT_POLICY=passive.
|
||||
Depending on the CPU speed, this can be e.g. 5 times longer
|
||||
or 5 times shorter. */
|
||||
if (wait_policy > 0)
|
||||
gomp_spin_count_var = 30000000000LL;
|
||||
else if (wait_policy < 0)
|
||||
gomp_spin_count_var = 20000000LL;
|
||||
gomp_spin_count_var = 300000LL;
|
||||
}
|
||||
/* gomp_throttled_spin_count_var is used when there are more libgomp
|
||||
managed threads than available CPUs. Use very short spinning. */
|
||||
|
Loading…
Reference in New Issue
Block a user