-
Notifications
You must be signed in to change notification settings - Fork 902
v3.1.x: UCX osc: properly release exclusive lock to avoid lockup #6972
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
Signed-off-by: Joseph Schuchart <[email protected]> (cherry picked from commit a5cc380)
cori may need to be taken off line - try again |
Can we get this into the next v3.1.x release? Should it cherry-picked to 3.0.x as well? |
This wasn't labeled or milestoned, so I didn't see it until now... Needs a review (ASAP). |
@devreal will do this week. |
@artpol84 please review. |
Will do today, sorry for the delay |
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.
Looks good to me.
I wonder if after this change we should revisit the shared lock acquisition link.
Instead of looping over
taken = 0;
while(!taken){
val = atomic_inc(var);
if( val > EXCLUSIVE ) {
atomic_dec(var);
} else {
taken = 1;
}
}
we can now
val = atomic_inc(var);
while( val > EXCLUSIVE ) {
val = atomic_read(val); // or just read
}
Need to see if this will be faster.
@yosefe, what do you think regarding the next step above? |
Cherry-pick of #6933 to v3.1.x
See #6931 for the issue this fixes.
Signed-off-by: Joseph Schuchart [email protected]
(cherry picked from commit a5cc380)