Files
mirror_zfs/module/zfs
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
..
2024-03-28 13:29:46 -07:00
2022-03-15 15:13:42 -07:00
2025-11-03 13:51:00 -08:00
2022-03-15 15:13:42 -07:00
2023-01-10 13:39:22 -08:00
2023-06-30 09:42:02 -07:00
2024-11-14 15:20:10 -08:00
2024-11-14 15:20:10 -08:00
2024-11-04 10:34:48 -08:00
2024-04-30 10:01:15 -07:00
2025-11-03 13:51:00 -08:00
2024-04-19 10:13:38 -07:00
2023-03-14 15:25:50 -07:00
2023-03-14 15:59:58 -07:00
2023-06-09 10:12:52 -07:00
2022-03-15 15:13:42 -07:00
2022-01-12 16:14:36 -08:00
2024-04-19 10:13:38 -07:00
2019-06-19 09:48:12 -07:00
2022-03-15 15:13:42 -07:00
2024-07-17 14:54:47 -07:00
2023-03-14 15:25:50 -07:00
2024-01-18 11:33:29 -08:00
2023-03-14 15:25:50 -07:00
2023-03-14 15:25:50 -07:00
2024-04-29 13:50:05 -07:00
2024-11-14 15:20:10 -08:00
2024-11-14 15:20:10 -08:00
2022-11-29 09:26:03 -08:00