-
Notifications
You must be signed in to change notification settings - Fork 1.9k
OpenZFS 6569 - large file delete can starve out write ops #5449
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
@alek-p, thanks for your PR! By analyzing the history of the files in this pull request, we identified @ahrens, @behlendorf and @DKOI to be potential reviewers. |
I wonder if this patch should wait for lazy unmount to be integrated. Reason being that w/o lazy unmount the unmount will fail w/ EBUSY if there are files being freed since we will hold open the referecnes to these files. The delete throttle patch makes this window of how long we're freeing these files longer hence the EBUSY unmount window is longer. |
@alek-p I think I can save you a little time. Lazy unmounts are something the Linux kernel should handle entirely for us in the VFS. Providing the |
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.
The change LGTM but I'd like to get a fresh run through the automated testing before merging this. @alek-p can you rebase this branch on the current master and force update the branch on GitHub. That will trigger another test run.
Reviewed by: Matt Ahrens <[email protected]> Reviewed by: Sanjay Nadkarni <[email protected]> Reviewed by: Pavel Zakharov <[email protected]> Approved by: Dan McDonald <[email protected]> OpenZFS-issue: https://www.illumos.org/issues/6569 OpenZFS-commit: openzfs/openzfs@ff5177e
@alek-p I've rebased this branch against master and resolved the trivial conflict. |
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.
Missing the Ported-by: line in the commit message as well.
@@ -735,11 +745,20 @@ dmu_free_long_range_impl(objset_t *os, dnode_t *dn, uint64_t offset, | |||
if (offset >= object_size) | |||
return (0); | |||
|
|||
if (zfs_per_txg_dirty_frees_percent <= 100) | |||
dirty_frees_threshold = | |||
(uint8_t) zfs_per_txg_dirty_frees_percent; |
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.
Style warning from the buildbot on this line. Space after cast.
This patch diverges slightly from what was merged to OpenZFS in late December. Let's port this again using the finalized version of the patch. |
@behlendorf i'll port it again. |
Superseded by #5706. |
This is a port of the delete throttle work from OpenZFS, see: openzfs/openzfs#214