ublk: fix maple tree lockdep warning and unpin under spinlock#761
Open
blktests-ci[bot] wants to merge 1 commit intolinus-master_basefrom
Open
ublk: fix maple tree lockdep warning and unpin under spinlock#761blktests-ci[bot] wants to merge 1 commit intolinus-master_basefrom
blktests-ci[bot] wants to merge 1 commit intolinus-master_basefrom
Conversation
Author
|
Upstream branch: b4e0758 |
Author
|
Upstream branch: b4e0758 |
29106ab to
e52ee42
Compare
ceec5ed to
3b54e52
Compare
Author
|
Upstream branch: 6596a02 |
e52ee42 to
284fd53
Compare
3b54e52 to
6a0b974
Compare
Author
|
Upstream branch: 507bd4b |
284fd53 to
f10327f
Compare
6a0b974 to
59ca59b
Compare
Author
|
Upstream branch: dd6c438 |
f10327f to
3096280
Compare
94f0438 to
857ada9
Compare
Author
|
Upstream branch: dd6c438 |
Fix two issues in the shmem buffer maple tree usage: 1) ublk_buf_cleanup() iterates the tree with mas_for_each() without holding rcu_read_lock or mas_lock, triggering a lockdep splat on CONFIG_PROVE_RCU kernels. Add mas_lock/unlock around the iteration. 2) __ublk_ctrl_unreg_buf() calls unpin_user_pages() under mas_lock (a spinlock). unpin_user_pages can be expensive for large buffers and may take additional locks if folio refcount drops to zero. Restructure to drop mas_lock before unpinning, re-acquiring it to continue iteration. Both functions now use the same pattern: erase under lock, drop lock, unpin and free, re-lock to continue. Extract ublk_unpin_range_pages() helper to share the page unpinning loop. Reported-by: Jens Axboe <[email protected]> Closes: https://lore.kernel.org/linux-block/[email protected]/ Cc: Liam R. Howlett <[email protected]> Signed-off-by: Ming Lei <[email protected]> Tested-by: Shin'ichiro Kawasaki <[email protected]>
3096280 to
01132e6
Compare
This file contains hidden or 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
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.
Pull request for series with
subject: ublk: fix maple tree lockdep warning and unpin under spinlock
version: 1
url: https://patchwork.kernel.org/project/linux-block/list/?series=1084082