Skip to content
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: aio calls may block #4875

Merged
12 commits merged into from Jul 8, 2015
Merged

librbd: aio calls may block #4875

12 commits merged into from Jul 8, 2015

Conversation

dillaman
Copy link

@dillaman dillaman commented Jun 5, 2015

Jason Dillaman added 2 commits June 5, 2015 16:11
The queue holds a collection of Context pointers that will
be completed by the thread pool.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit 24a33e9)
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit b3f5a75)
@dillaman dillaman added this to the hammer milestone Jun 5, 2015
@ghost
Copy link

ghost commented Jun 5, 2015

@dillaman would you mind adding an explanation of how you resolved the conflict at 9fa3039, adf7d70, 3e157fd, 24c0e08, 5331b2f ? I found that to be quite helpful. Of course the always is the possibility of comparing the diffs to see what have changed, but except for trivial conflicts knowing can help.

@ghost ghost self-assigned this Jun 7, 2015
@dillaman
Copy link
Author

dillaman commented Jun 8, 2015

@dachary Do you have a good example of this? Since these changes were basically to correct overzealous code insertions from git and not logic changes, I am struggling to figure out how to properly describe the changes.

@ghost
Copy link

ghost commented Jun 8, 2015

@dillaman if that's trivial I would just mention trivial rebase and the reader knows there is nothing to worry about in the conflict zone. e1d5773 has an example of non trivial resolution comment. c0cfd6e a comment that could have been trivial rebase but I started at the difference for a few minutes before seeing the ++ inversion so I felt the need to mention it ;-)

@ghost
Copy link

ghost commented Jun 8, 2015

or trivial resolution instead of trivial rebase maybe ?

Jason Dillaman added 10 commits June 10, 2015 11:50
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit afb896d)

Conflicts:
	src/librbd/ImageCtx.cc: trivial resolution
	src/librbd/ImageCtx.h: trivial resolution
Enqueue all AIO API methods within the new librbd thread pool to
reduce the possibility of any blocking operations. To maintain
backwards compatibility with the legacy return codes of the API's
AIO methods, it's still possible to block attempting to acquire
the snap_lock.

Fixes: #11056
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit 3a7b5e3)
Helper method to handle passing fatal errors generated within
librbd (not from the OSDs) back to the client.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit 6d1d0c8)
Allow the client of SimpleThrottle to detect an async error
so that it can exit early.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit b88b88c)
All failures should be returned via the AioCompletion.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit 9ab42d6)

Conflicts:
	src/librbd/AioRequest.cc: trivial resolution
	src/librbd/internal.cc: trivial resolution
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit 948b15e)

Conflicts:
	src/test/librbd/test_internal.cc: trivial resolution
	src/test/librbd/test_librbd.cc: trivial resolution
The librados calls used by AioRequest::send should always return
zero unless there is a bug.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit c77bce3)

Conflicts:
	src/librbd/AioRequest.cc: trivial resolution
	src/librbd/AsyncFlattenRequest.cc: trivial resolution
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Setting this option to false reverts librbd to legacy behavior
where AIO operations could potentially block.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit 769cad1)
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit 4cf4148)

Conflicts:
	src/test/librbd/test_librbd.cc: trival resolution
@dillaman dillaman changed the title [DNM] librbd: aio calls may block librbd: aio calls may block Jun 11, 2015
@dillaman
Copy link
Author

Passed RBD teuthology suite

@theanalyst
Copy link
Member

This pr has passed the first run of integration tests for hammer-backports tracked at http://tracker.ceph.com/issues/11990#rbd. @dachary / @dillaman Do you think it is ready to merge

@dillaman
Copy link
Author

dillaman commented Jul 6, 2015

👍

ghost pushed a commit that referenced this pull request Jul 8, 2015
librbd: aio calls may block

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
Reviewed-by: Loic Dachary <ldachary@redhat.com>
@ghost ghost merged commit 5696b0f into hammer Jul 8, 2015
@dillaman dillaman deleted the wip-11770-hammer branch September 7, 2015 18:14
This pull request was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
3 participants