Skip to content

atomics/powerpc: Fix WMB instruction #3661

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

Merged
merged 1 commit into from
Jun 7, 2017
Merged

Conversation

jjhursey
Copy link
Member

@jjhursey jjhursey commented Jun 6, 2017

Signed-off-by: Joshua Hursey [email protected]

 * `lwsync` is a write memory barrier.
    - `eieio` is really not meant for this type of operation.
 * `lwsync` can also be used for the read memory barrier according to
   my reading of the of the Power 8 ISA docs (v2.07)
    - https://www-01.ibm.com/marketing/iwm/iwm/web/reg/download.do?source=swg-opower&S_PKG=dl&lang=en_US&cp=UTF-8
 * References openpmix/openpmix#391

Signed-off-by: Joshua Hursey <[email protected]>
@jjhursey
Copy link
Member Author

jjhursey commented Jun 6, 2017

For those interested ping me offline if you cannot access the link in the PR description. The link below might also be of help (though it doesn't have all the finer details):

Copy link
Member

@bwbarrett bwbarrett left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I remember being really nervous about eieio 10+ years ago when we were first writing this code. The PPC970 let you get away with it; not surprised if the newer POWER8 doesn't...

@jjhursey
Copy link
Member Author

jjhursey commented Jun 7, 2017

@hjelmn I forgot to flag you on this PR. Per our conversation, do you have any reservations about this change? It's what we discussed. There is some question about if there is a different, lighter mechanism for the RMB, but we can address that in another PR if necessary.

@hjelmn
Copy link
Member

hjelmn commented Jun 7, 2017

I think lwsync is light enough for the read barrier for our use case.

@hjelmn
Copy link
Member

hjelmn commented Jun 7, 2017

PR this to 2.0.x, 2.x, and 3.0.x.

@hjelmn hjelmn merged commit f038fe6 into open-mpi:master Jun 7, 2017
@jjhursey jjhursey deleted the fix/ppc-wmb branch June 7, 2017 18:17
@jjhursey
Copy link
Member Author

jjhursey commented Jun 7, 2017

Thanks - the three PRs have been filed to the release branches.

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.

5 participants