Page MenuHomeFreeBSD

MFV r350898: 8423 8199 7432 Implement large_dnode pool feature

Authored by avg on Aug 12 2019, 8:21 PM.



8423 8199 7432 Implement large_dnode pool feature

8423 Implement large_dnode pool feature
8199 multi-threaded dmu_object_alloc()
7432 Large dnode pool feature


ZoL issues:
Improved dnode allocation #6564
Clean up large dnode code #6262
Fix dnode_hold() freeing dnode behavior #8172
Fix dnode allocation race #6414, #6439
Partial: Raw sends must be able to decrease nlevels #6821, #6864
Remove unnecessary txg syncs from receive_object() Closes #7197

Author: Toomas Soome <>

This updates FreeBSD large_dnode code to a version that was committed to illumos.
It has some cleanups, improvements and fixes comparing to what we have in FreeBSD now.
I think that the most significant update is 8199 multi-threaded dmu_object_alloc().

Diff Detail

rS FreeBSD src repository
No Linters Available
No Unit Test Coverage
Build Status
Buildable 25814
Build 24386: arc lint + arc unit

Event Timeline

avg created this revision.Aug 12 2019, 8:21 PM
cy added a subscriber: cy.Aug 14 2019, 1:46 AM
avg added a comment.Aug 15 2019, 3:42 PM

At least userland builds (not sure about kernels yet) on 32-bit platforms are broken because of missing atomic_swap_64.

avg abandoned this revision.Wed, Oct 16, 2:39 PM

Committed as an MFV in rS353176.