-
Notifications
You must be signed in to change notification settings - Fork 900
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
Conversation
* `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]>
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): |
There was a problem hiding this 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...
@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 |
I think lwsync is light enough for the read barrier for our use case. |
PR this to 2.0.x, 2.x, and 3.0.x. |
Thanks - the three PRs have been filed to the release branches. |
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 tomy reading of the of the Power 8 ISA docs (v2.07)
Signed-off-by: Joshua Hursey [email protected]