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:
Jakub Jelinek 2010-12-02 15:31:27 +01:00 committed by Jakub Jelinek
parent b7516041a1
commit 4c698cf891
2 changed files with 7 additions and 2 deletions

View File

@ -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.

View File

@ -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. */