Skip to content

Conversation

@jsquyres
Copy link
Member

I noticed today that the call to ibv_fork_support() is after the call to ibv_get_device_list() in the oob ud component.

Isn't this too late?

The call sequence of ibv_get_device_list() effectively calls pthread_once(..., ibverbs_init), which ends up calling ibv_fork_init() if certain environment variables are set. This means that libibvebrs, itself, thinks that ibv_fork_init() should be invoked even before the bulk of ibv_get_device_list() is invoked.

As such, this PR moves the call to opal_common_verbs_fork_test() to up before the call to ibv_get_device_list() (just curious -- why not use opal_ibv_get_device_list()?). This ensures that the call to ibv_fork_init() is before all other ibv_* calls.

Please review: @miked-mellanox @hjelmn

Move the call to opal_common_verbs_fork_test() to up before the call
to ibv_get_device_list() (just curious -- why not use
opal_ibv_get_device_list()?).  This ensures that the call to
ibv_fork_init() is before *all* other ibv_* calls.
@mellanox-github
Copy link

Refer to this link for build results (access rights to CI server needed):
http://bgate.mellanox.com/jenkins/job/gh-ompi-master-pr/483/
Test PASSed.

@jsquyres
Copy link
Member Author

@hjelmn reviewed this and gave me an "ok" in IM

jsquyres added a commit that referenced this pull request Apr 27, 2015
oob ud: put call to ibv_fork_init() before *all* ibv calls
@jsquyres jsquyres merged commit 876662f into open-mpi:master Apr 27, 2015
@jsquyres jsquyres deleted the pr/verbs-fork-support branch April 27, 2015 18:35
jsquyres added a commit to jsquyres/ompi that referenced this pull request Nov 10, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants