-
Notifications
You must be signed in to change notification settings - Fork 1.7k
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
[2.1] Unify arc_prune_async() code #16083
Conversation
There is no sense to have separate implementations for FreeBSD and Linux. Make Linux code shared as more functional and just register FreeBSD-specific prune callback with arc_add_prune_callback() API. Aside of code cleanup this should fix excessive pruning on FreeBSD: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=274698 Signed-off-by: Alexander Motin <mav@FreeBSD.org> Sponsored by: iXsystems, Inc.
Testing. |
Testing shows that this patch, when applied to stable/13, makes the main problems in my reproducer for FreeBSD's PR 275594 disappear. |
FWIW, I've also merged the code from commit 799e09f myself, and came up with exactly the same diff. This may help reviewing the code here faster. |
5b81b1b
into
openzfs:zfs-2.1.16-staging
There is no sense to have separate implementations for FreeBSD and Linux. Make Linux code shared as more functional and just register FreeBSD-specific prune callback with arc_add_prune_callback() API. Aside of code cleanup this fixes excessive pruning on FreeBSD. [olce: This code comes from the OpenZFS pull request: openzfs/zfs#16083, vendor-merged into our tree. The commit message above is an adaptation of the pull request's message to the context. The pull request has been reviewed and merged upstream into 'zfs-2.1.16-staging' as 5b81b1bf5e6d6aeb8a87175dcb12b529185cac2f, which should come into our tree at the next vendor import. This is the same code that was merge in stable/14 and main as part of vendor merges, and released as an EN over releng/14.0 by markj@.] PR: 275594, 274698 Reported by: Seigo Tanimura <seigo.tanimura@gmail.com>, markj, and others Tested by: olce Approved by: XXX (mentor) Security: FreeBSD-EN-23:18.openzfs Obtained from: OpenZFS Sponsored by: iXsystems, Inc. Sponsored by: The FreeBSD Foundation Signed-off-by: Alexander Motin <mav@FreeBSD.org>
There is no sense to have separate implementations for FreeBSD and Linux. Make Linux code shared as more functional and just register FreeBSD-specific prune callback with arc_add_prune_callback() API. Aside of code cleanup this fixes excessive pruning on FreeBSD. [olce: This code comes from the OpenZFS pull request: openzfs/zfs#16083, vendor-merged into our tree. This commit message is an adaptation of the latter's to the context. The upstream pull request has been reviewed and merged into 'zfs-2.1.16-staging' as 5b81b1bf5e6d6aeb8a87175dcb12b529185cac2f, which should come into our tree at the next vendor import. This is the same code that was merged into stable/14 and main as part of vendor merges, and released as an EN over releng/14.0 by markj@.] PR: 275594, 274698 Reported by: Seigo Tanimura <seigo.tanimura@gmail.com>, markj, and others Tested by: olce Approved by: XXX (mentor) Security: FreeBSD-EN-23:18.openzfs Obtained from: OpenZFS Sponsored by: iXsystems, Inc. Sponsored by: The FreeBSD Foundation Signed-off-by: Alexander Motin <mav@FreeBSD.org>
There is no sense to have separate implementations for FreeBSD and Linux. Make Linux code shared as more functional and just register FreeBSD-specific prune callback with arc_add_prune_callback() API. Aside of code cleanup this fixes excessive pruning on FreeBSD. [olce: This code comes from the OpenZFS pull request: openzfs/zfs#16083, vendor-merged into our tree. Its commit message has been slightly adapted to the present context. The upstream pull request has been reviewed and merged into 'zfs-2.1.16-staging' as 5b81b1bf5e6d6aeb8a87175dcb12b529185cac2f, which should come into our tree at the next vendor import. This is the same code that was merged into stable/14 and main as part of vendor merges, and released as an EN (FreeBSD-EN-23:18.openzfs) over releng/14.0 by markj@.] PR: 275594, 274698 Reported by: Seigo Tanimura <seigo.tanimura@gmail.com>, markj, and others Tested by: olce Approved by: emaste (mentor) Obtained from: OpenZFS Sponsored by: iXsystems, Inc. Sponsored by: The FreeBSD Foundation Signed-off-by: Alexander Motin <mav@FreeBSD.org>
Thanks all for your diligent work! A merge of this is going to be committed in advance of vendor imports and merges in FreeBSD's stable/13. |
There is no sense to have separate implementations for FreeBSD and Linux. Make Linux code shared as more functional and just register FreeBSD-specific prune callback with arc_add_prune_callback() API. Aside of code cleanup this fixes excessive pruning on FreeBSD. [olce: This code comes from the OpenZFS pull request: openzfs/zfs#16083, vendor-merged into our tree. Its commit message has been slightly adapted to the present context. The upstream pull request has been reviewed and merged into 'zfs-2.1.16-staging' as 5b81b1bf5e6d6aeb8a87175dcb12b529185cac2f, which should come into our tree at the next vendor import. This is the same code that was merged into stable/14 and main as part of vendor merges, and released as an EN (FreeBSD-EN-23:18.openzfs) over releng/14.0 by markj@.] PR: 275594, 274698 Reported by: Seigo Tanimura <seigo.tanimura@gmail.com>, markj, and others Tested by: olce Approved by: emaste (mentor) Obtained from: OpenZFS Sponsored by: iXsystems, Inc. Sponsored by: The FreeBSD Foundation Signed-off-by: Alexander Motin <mav@FreeBSD.org>
There is no sense to have separate implementations for FreeBSD and Linux. Make Linux code shared as more functional and just register FreeBSD-specific prune callback with arc_add_prune_callback() API. Aside of code cleanup this fixes excessive pruning on FreeBSD. [olce: This code comes from the OpenZFS pull request: openzfs/zfs#16083, vendor-merged into our tree. Its commit message has been slightly adapted to the present context. The upstream pull request has been reviewed and merged into 'zfs-2.1.16-staging' as 5b81b1bf5e6d6aeb8a87175dcb12b529185cac2f, which should come into our tree at the next vendor import. This is the same code that was merged into stable/14 and main as part of vendor merges, and released as an EN (FreeBSD-EN-23:18.openzfs) over releng/14.0 by markj@.] PR: 275594, 274698 Reported by: Seigo Tanimura <seigo.tanimura@gmail.com>, markj, and others Tested by: olce Approved by: emaste (mentor) Approved by: so Obtained from: OpenZFS Sponsored by: iXsystems, Inc. Sponsored by: The FreeBSD Foundation Signed-off-by: Alexander Motin <mav@FreeBSD.org> (cherry picked from commit 330954b)
There is no sense to have separate implementations for FreeBSD and Linux. Make Linux code shared as more functional and just register FreeBSD-specific prune callback with arc_add_prune_callback() API. Aside of code cleanup this fixes excessive pruning on FreeBSD. [olce: This code comes from the OpenZFS pull request: openzfs/zfs#16083, vendor-merged into our tree. Its commit message has been slightly adapted to the present context. The upstream pull request has been reviewed and merged into 'zfs-2.1.16-staging' as 5b81b1bf5e6d6aeb8a87175dcb12b529185cac2f, which should come into our tree at the next vendor import. This is the same code that was merged into stable/14 and main as part of vendor merges, and released as an EN (FreeBSD-EN-23:18.openzfs) over releng/14.0 by markj@.] PR: 275594, 274698 Reported by: Seigo Tanimura <seigo.tanimura@gmail.com>, markj, and others Tested by: olce Approved by: emaste (mentor) Approved by: so Obtained from: OpenZFS Sponsored by: iXsystems, Inc. Sponsored by: The FreeBSD Foundation Signed-off-by: Alexander Motin <mav@FreeBSD.org> (cherry picked from commit 330954b)
There is no sense to have separate implementations for FreeBSD and Linux. Make Linux code shared as more functional and just register FreeBSD-specific prune callback with arc_add_prune_callback() API.
Aside of code cleanup this should fix excessive pruning on FreeBSD: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=274698
Types of changes
Checklist:
Signed-off-by
.