mirror_zfs/module
Alexander Motin 1ced0ff5de Reduce zfs_dmu_offset_next_sync penalty
Looking on txg_wait_synced(, 0) I've noticed that it always syncs
5 TXGs: 3 TXG_CONCURRENT_STATES + 2 TXG_DEFER_SIZE.  But in case
of dmu_offset_next() we do not care about deferred frees. And even
concurrent TXGs we might not need sync all 3 if the dnode was not
dirtied in last few TXGs.

This patch makes dmu_offset_next() to sync one TXG at a time until
the dnode is clean, but no more than 3 TXG_CONCURRENT_STATES times.
My tests with random simultaneous writes and seeks over many files
on HDD pool show 7-14% performance increase.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Rob Norris <robn@despairlabs.com>
Signed-off-by:	Alexander Motin <mav@FreeBSD.org>
Sponsored by:	iXsystems, Inc.
Closes #17434
2025-11-03 13:51:00 -08:00
..
avl Suppress Clang Static Analyzer false positive in the AVL tree code. 2023-03-08 13:51:21 -08:00
icp Linux build: silence objtool warnings 2025-06-04 17:40:56 -07:00
lua lua: add flex array field to TString type 2024-11-05 15:43:52 -08:00
nvpair xdr: header cleanup 2024-04-29 13:50:05 -07:00
os enforce arc_dnode_limit 2025-11-03 13:51:00 -08:00
unicode Illumos #15286: do_composition() needs sign awareness 2023-01-05 11:16:21 -08:00
zcommon GCC 15: Fix unterminated-string-initialization (#17244) 2025-05-27 15:03:11 -07:00
zfs Reduce zfs_dmu_offset_next_sync penalty 2025-11-03 13:51:00 -08:00
zstd Resolve WS-2021-0184 vulnerability in zstd 2023-02-02 15:12:51 -08:00
.gitignore FreeBSD: Ignore symlink to i386 includes 2022-08-02 16:34:23 -07:00
Kbuild.in Linux build: always use objtool 2025-05-30 15:08:01 -07:00
Makefile.bsd zfs_znode: lift common code to a single shared file 2024-11-15 10:15:01 -08:00
Makefile.in objtool wrapper: use absolute path to call the wrapper 2025-10-22 10:34:53 -07:00