diff options
author | Alexander Motin <[email protected]> | 2024-03-25 17:58:50 -0400 |
---|---|---|
committer | GitHub <[email protected]> | 2024-03-25 14:58:50 -0700 |
commit | 80cc516295fef1a429542fcfeea369c6bbb85ce4 (patch) | |
tree | 30b9d9df590252a12821f43d9de500a8253b51cd /module/zfs/bpobj.c | |
parent | bf8f72359d1bf0cdb6a4b31ccfc7bbef0f948ca4 (diff) |
ZAP: Massively switch to _by_dnode() interfaces
Before this change ZAP called dnode_hold() for almost every block
access, that was clearly visible in profiler under heavy load, such
as BRT. This patch makes it always hold the dnode reference between
zap_lockdir() and zap_unlockdir(). It allows to avoid most of dnode
operations between those. It also adds several new _by_dnode() APIs
to ZAP and uses them in BRT code. Also adds dmu_prefetch_by_dnode()
variant and uses it in the ZAP code.
After this there remains only one call to dmu_buf_dnode_enter(),
which seems to be unneeded. So remove the call and the functions.
Reviewed-by: Brian Behlendorf <[email protected]>
Signed-off-by: Alexander Motin <[email protected]>
Sponsored by: iXsystems, Inc.
Closes #15951
Diffstat (limited to 'module/zfs/bpobj.c')
0 files changed, 0 insertions, 0 deletions