public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug libgomp/55411] New: OMP threads lose their OMP_WAIT_POLICY when another OMP thread gets destructed
@ 2012-11-20 10:03 jk3064 at arcor dot de
2012-11-20 10:04 ` [Bug libgomp/55411] " jk3064 at arcor dot de
` (6 more replies)
0 siblings, 7 replies; 8+ messages in thread
From: jk3064 at arcor dot de @ 2012-11-20 10:03 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55411
Bug #: 55411
Summary: OMP threads lose their OMP_WAIT_POLICY when another
OMP thread gets destructed
Classification: Unclassified
Product: gcc
Version: 4.6.3
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: libgomp
AssignedTo: unassigned@gcc.gnu.org
ReportedBy: jk3064@arcor.de
So there are 2 bugs:
* the omp workers of a boost::thread are ignoring OMP_WAIT_POLICY
* once the boost::thread gets destructed the main-thread's omp worker's
WAIT_POLICY get lost
used to compile the example:
g++ -fopenmp -lgomp -lboost_system -lboost_thread-mt -o foo.bin -O2 foo_omp.c
tested with gentoo:
Just run the example with `export OMP_WAIT_POLICY="ACTIVE"` and watch it in
another window with htop. First all created omp threads use 100%, then the
boost::thread and its omp workers are spawned (all with ~0% cpu usage, still
the main-thread's omp workers use 100%). Then the boost::thread gets destructed
and the main-threads omp workers fallback to 0% cpu usage.
PS: It would be nice if there was a GOMP_DEBUG to enable a more verbose output,
esp. to debug GOMP_SPINCOUNT & OMP_PROC_BIND.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug libgomp/55411] OMP threads lose their OMP_WAIT_POLICY when another OMP thread gets destructed
2012-11-20 10:03 [Bug libgomp/55411] New: OMP threads lose their OMP_WAIT_POLICY when another OMP thread gets destructed jk3064 at arcor dot de
@ 2012-11-20 10:04 ` jk3064 at arcor dot de
2012-11-21 2:14 ` pinskia at gcc dot gnu.org
` (5 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: jk3064 at arcor dot de @ 2012-11-20 10:04 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55411
--- Comment #1 from jk3064 at arcor dot de 2012-11-20 10:04:08 UTC ---
Created attachment 28742
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=28742
example testcase
compile with: g++ -fopenmp -lgomp -lboost_system -lboost_thread-mt -o foo.bin
-O2 foo_omp.c
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug libgomp/55411] OMP threads lose their OMP_WAIT_POLICY when another OMP thread gets destructed
2012-11-20 10:03 [Bug libgomp/55411] New: OMP threads lose their OMP_WAIT_POLICY when another OMP thread gets destructed jk3064 at arcor dot de
2012-11-20 10:04 ` [Bug libgomp/55411] " jk3064 at arcor dot de
@ 2012-11-21 2:14 ` pinskia at gcc dot gnu.org
2012-11-21 3:20 ` jk3064 at arcor dot de
` (4 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: pinskia at gcc dot gnu.org @ 2012-11-21 2:14 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55411
--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> 2012-11-21 02:13:37 UTC ---
Can you create a testcase which uses pthread_* directly?
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug libgomp/55411] OMP threads lose their OMP_WAIT_POLICY when another OMP thread gets destructed
2012-11-20 10:03 [Bug libgomp/55411] New: OMP threads lose their OMP_WAIT_POLICY when another OMP thread gets destructed jk3064 at arcor dot de
2012-11-20 10:04 ` [Bug libgomp/55411] " jk3064 at arcor dot de
2012-11-21 2:14 ` pinskia at gcc dot gnu.org
@ 2012-11-21 3:20 ` jk3064 at arcor dot de
2012-11-21 10:31 ` jakub at gcc dot gnu.org
` (3 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: jk3064 at arcor dot de @ 2012-11-21 3:20 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55411
--- Comment #3 from jk3064 <jk3064 at arcor dot de> 2012-11-21 03:20:26 UTC ---
Created attachment 28748
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=28748
pthread only testcase
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug libgomp/55411] OMP threads lose their OMP_WAIT_POLICY when another OMP thread gets destructed
2012-11-20 10:03 [Bug libgomp/55411] New: OMP threads lose their OMP_WAIT_POLICY when another OMP thread gets destructed jk3064 at arcor dot de
` (2 preceding siblings ...)
2012-11-21 3:20 ` jk3064 at arcor dot de
@ 2012-11-21 10:31 ` jakub at gcc dot gnu.org
2012-11-21 20:30 ` jakub at gcc dot gnu.org
` (2 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: jakub at gcc dot gnu.org @ 2012-11-21 10:31 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55411
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |ASSIGNED
Last reconfirmed| |2012-11-21
AssignedTo|unassigned at gcc dot |jakub at gcc dot gnu.org
|gnu.org |
Ever Confirmed|0 |1
--- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-11-21 10:31:33 UTC ---
Created attachment 28752
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=28752
gcc48-pr55411.patch
Untested fix.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug libgomp/55411] OMP threads lose their OMP_WAIT_POLICY when another OMP thread gets destructed
2012-11-20 10:03 [Bug libgomp/55411] New: OMP threads lose their OMP_WAIT_POLICY when another OMP thread gets destructed jk3064 at arcor dot de
` (3 preceding siblings ...)
2012-11-21 10:31 ` jakub at gcc dot gnu.org
@ 2012-11-21 20:30 ` jakub at gcc dot gnu.org
2012-11-21 20:32 ` jakub at gcc dot gnu.org
2012-12-02 17:26 ` jk3064 at arcor dot de
6 siblings, 0 replies; 8+ messages in thread
From: jakub at gcc dot gnu.org @ 2012-11-21 20:30 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55411
--- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-11-21 20:29:28 UTC ---
Author: jakub
Date: Wed Nov 21 20:29:14 2012
New Revision: 193706
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=193706
Log:
PR libgomp/55411
* team.c (gomp_free_thread): Decrease gomp_managed_threads
if pool had any threads_used.
Modified:
trunk/libgomp/ChangeLog
trunk/libgomp/team.c
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug libgomp/55411] OMP threads lose their OMP_WAIT_POLICY when another OMP thread gets destructed
2012-11-20 10:03 [Bug libgomp/55411] New: OMP threads lose their OMP_WAIT_POLICY when another OMP thread gets destructed jk3064 at arcor dot de
` (4 preceding siblings ...)
2012-11-21 20:30 ` jakub at gcc dot gnu.org
@ 2012-11-21 20:32 ` jakub at gcc dot gnu.org
2012-12-02 17:26 ` jk3064 at arcor dot de
6 siblings, 0 replies; 8+ messages in thread
From: jakub at gcc dot gnu.org @ 2012-11-21 20:32 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55411
--- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-11-21 20:31:43 UTC ---
Author: jakub
Date: Wed Nov 21 20:31:31 2012
New Revision: 193707
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=193707
Log:
PR libgomp/55411
* team.c (gomp_free_thread): Decrease gomp_managed_threads
if pool had any threads_used.
Modified:
branches/gcc-4_7-branch/libgomp/ChangeLog
branches/gcc-4_7-branch/libgomp/team.c
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug libgomp/55411] OMP threads lose their OMP_WAIT_POLICY when another OMP thread gets destructed
2012-11-20 10:03 [Bug libgomp/55411] New: OMP threads lose their OMP_WAIT_POLICY when another OMP thread gets destructed jk3064 at arcor dot de
` (5 preceding siblings ...)
2012-11-21 20:32 ` jakub at gcc dot gnu.org
@ 2012-12-02 17:26 ` jk3064 at arcor dot de
6 siblings, 0 replies; 8+ messages in thread
From: jk3064 at arcor dot de @ 2012-12-02 17:26 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55411
jk3064 <jk3064 at arcor dot de> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|ASSIGNED |RESOLVED
Resolution| |FIXED
--- Comment #7 from jk3064 <jk3064 at arcor dot de> 2012-12-02 17:26:14 UTC ---
Thank you!
That fixed it.
The omp threads of the 2nd thread obv. still don't copy the policies of the
main one, but this would be even counterproductive (you would have ~twice more
threads with 100% cpu usage than you got cores). This could only be solved with
an either process or OS shared workerpool, what is another topic. So the ticket
can be closed :)
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2012-12-02 17:26 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-11-20 10:03 [Bug libgomp/55411] New: OMP threads lose their OMP_WAIT_POLICY when another OMP thread gets destructed jk3064 at arcor dot de
2012-11-20 10:04 ` [Bug libgomp/55411] " jk3064 at arcor dot de
2012-11-21 2:14 ` pinskia at gcc dot gnu.org
2012-11-21 3:20 ` jk3064 at arcor dot de
2012-11-21 10:31 ` jakub at gcc dot gnu.org
2012-11-21 20:30 ` jakub at gcc dot gnu.org
2012-11-21 20:32 ` jakub at gcc dot gnu.org
2012-12-02 17:26 ` jk3064 at arcor dot de
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).