mirror_zfs/include
Alexander Motin a41ef36858 DDT: Reduce global DDT lock scope during writes
Before this change DDT lock was taken 4 times per written block,
and as effectively a pool-wide lock it can be highly congested.
This change introduces a new per-entry dde_io_lock, protecting some
fields during I/O ready and done stages, so that we don't need the
global lock there.

According to my write tests on 64-thread system with 4KB blocks this
significantly reduce the global lock contention, reducing CPU usage
from 100% to expected ~80%, and increasing write throughput by 10%.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Rob Norris <robn@despairlabs.com>
Signed-off-by: Alexander Motin <alexander.motin@TrueNAS.com>
Closes #17960
2025-12-10 10:21:29 -08:00
..
os ZIO: Set minimum number of free issue threads to 32 2025-11-12 13:06:39 -08:00
sys DDT: Reduce global DDT lock scope during writes 2025-12-10 10:21:29 -08:00
.gitignore OpenZFS restructuring - move platform specific sources 2019-09-06 11:26:26 -07:00
cityhash.h SPDX: license tags: MIT 2025-03-13 17:56:54 -07:00
libnvpair.h SPDX: license tags: CDDL-1.0 2025-03-13 17:56:27 -07:00
libuutil_common.h SPDX: license tags: CDDL-1.0 2025-03-13 17:56:27 -07:00
libuutil_impl.h SPDX: license tags: CDDL-1.0 2025-03-13 17:56:27 -07:00
libuutil.h SPDX: license tags: CDDL-1.0 2025-03-13 17:56:27 -07:00
libzdb.h libzdb: Initial breakout of libzdb 2024-02-05 10:00:41 -08:00
libzfs_core.h SPDX: license tags: CDDL-1.0 2025-03-13 17:56:27 -07:00
libzfs.h pool_iter_refresh: don't refresh pools twice 2025-10-21 09:50:43 -07:00
libzfsbootenv.h SPDX: license tags: CDDL-1.0 2025-03-13 17:56:27 -07:00
libzutil.h SPDX: license tags: CDDL-1.0 2025-03-13 17:56:27 -07:00
Makefile.am Add TXG timestamp database 2025-08-06 10:31:21 -07:00
thread_pool.h SPDX: license tags: CDDL-1.0 2025-03-13 17:56:27 -07:00
zfeature_common.h Implement physical rewrites 2025-08-06 10:36:56 -07:00
zfs_comutil.h SPDX: license tags: CDDL-1.0 2025-03-13 17:56:27 -07:00
zfs_crrd.h Add TXG timestamp database 2025-08-06 10:31:21 -07:00
zfs_deleg.h ZFS allow send:encrypted 2025-09-12 15:05:02 -07:00
zfs_fletcher.h SPDX: license tags: CDDL-1.0 2025-03-13 17:56:27 -07:00
zfs_namecheck.h SPDX: license tags: CDDL-1.0 2025-03-13 17:56:27 -07:00
zfs_prop.h SPDX: license tags: CDDL-1.0 2025-03-13 17:56:27 -07:00
zfs_valstr.h events: include zio type in IO error reports 2025-05-30 10:29:29 -04:00