-
Notifications
You must be signed in to change notification settings - Fork 890
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
opal/fifo: fix 128-bit atomic fifo on Power9 #5374
Conversation
@jsquyres Turns out that Power 9 can support 128-bit compare-exchange. It has LL/SC instructions for reading/writing quad words. |
FYI @gpaulsen. Targeted for v3.0.x and v3.1.x. |
Our CI is power8, but I think Josh disabled make-check. |
This commit updates the atomic fifo code to fix a consistency issue observed on Power9 systems when builtin atomics are used. The cause was two things: 1) a missing write memory barrier in fifo push, and 2) a read ordering issue when reading the fifo head non-atomically. This commit fixes both issues and appears to correct then inconsistency. Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
@gpaulsen Any news? 😄 |
I'll give it a go. |
Build and runs fine on power8 and power9, both with RHEL 7.5 and gcc 4.8.5 'make check' reported all PASSES (including opal_fifo). NOTE: mpool_memkind was skipped because configure was not able to build it (no memkind.h at configure time). I assume this is not related to this opal_fifo change. Thanks again @hjelmn |
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 can't see any obvious issues, though I am not a memory barrier expert.
runs well on power8 and power9.
This commit updates the atomic fifo code to fix a consistency issue
observed on Power9 systems when builtin atomics are used. The cause
was two things: 1) a missing write memory barrier in fifo push, and 2)
a read ordering issue when reading the fifo head non-atomically. This
commit fixes both issues and appears to correct then inconsistency.
Signed-off-by: Nathan Hjelm hjelmn@lanl.gov