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
librbd: use async librados notifications #7668
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
dillaman
force-pushed
the
wip-librbd-replay-locks
branch
3 times, most recently
from
February 17, 2016 14:23
7f5be72
to
b70b4d8
Compare
dillaman
changed the title
[DNM] librbd: use async librados notifications
librbd: use async librados notifications
Feb 17, 2016
getting a unittest failure with RBD_FEATURES=5:
|
The header update and lock notifications might be invoked from the librados AIO thread. Update the close state machine to flush any potential AIO notifications. Signed-off-by: Jason Dillaman <dillaman@redhat.com>
…s thread" This reverts commit d898995. Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
If two or more images share the same CephContext, notifications from one image can block the work queue which will potentially block acknowledging the notification until after it times out. Signed-off-by: Jason Dillaman <dillaman@redhat.com>
lockdep will complain about loop cycles that won't cause an issue in reality as replay and record are two different journal states. Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Previously the image could not have been renamed twice without re-opening the image. Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Avoid leaving in-flight notification messages when transitioning lock states. Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
The write lock will be taken when the new state is applied. Signed-off-by: Jason Dillaman <dillaman@redhat.com>
dillaman
force-pushed
the
wip-librbd-replay-locks
branch
from
February 19, 2016 00:57
82bd770
to
4f15332
Compare
@jdurgin I ran run-rbd-unit-tests.sh for two hours in a loop under a single core and under a 6-core environment without issue. Let me know if something happens in your environment. |
jdurgin
added a commit
that referenced
this pull request
Feb 19, 2016
librbd: use async librados notifications Reviewed-by: Josh Durgin <jdurgin@redhat.com>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There is a possible edge condition when multiple images are opened and a refresh is required. The WorkQueue will be blocked waiting for the notification to be ACKed, but it cannot be ACKed until the (blocked) refresh is complete.
This also includes minor modifications (and associated tests) to ensure librbd and properly replay uncommitted events followed by resuming live ops without upsetting lockdep.