Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make sure opal_start_thread always spawns pthreads [v5.0.x] #9395

Merged
merged 1 commit into from
Sep 23, 2021

Conversation

devreal
Copy link
Contributor

@devreal devreal commented Sep 20, 2021

Users of opal_start_thread (btl/tcp, ft, smcuda, progress thread)
may spawn threads that may block in functions unaware of argobots
or qthreads (e.g., libevent or read(3)). If we spawn an argobot or
qthread instead of a pthread the thread executing the argobot or
qthread (potentially the main thread) blocks, leading to a deadlock
situation. Open MPI expects the semantics of a pthread so
we should handle all internal threads as such.

Backport of #9326 to v5.0.x

Signed-off-by: Joseph Schuchart [email protected]
(cherry picked from commit e3ca132)

Users of `opal_start_thread` (btl/tcp, ft, smcuda, progress thread)
may spawn threads that may block in functions unaware of argobots
or qthreads (e.g., libevent or read(3)). If we spawn an argobot or
qthread instead of a pthread the thread executing the argobot or
qthread (potentially the main thread) blocks, leading to a deadlock
situation. Open MPI expects the semantics of a pthread so
we should handle all internal threads as such.

Signed-off-by: Joseph Schuchart <[email protected]>
(cherry picked from commit e3ca132)
@gpaulsen gpaulsen merged commit a202517 into open-mpi:v5.0.x Sep 23, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants