mirror_zfs/module
Alexander Motin 25327ed7ce Improve caching for dbuf prefetches
To avoid read errors with transaction open dmu_tx_check_ioerr()
is used to read everything required in advance.  But there seems
to be a chance for the buffer to evicted from dbuf cache in
between, which result in immediate eviction from ARC, which may
require additional disk read later in a place where error handling
is problematic.

To partially workaround this introduce a new flag DMU_IS_PREFETCH,
relayed to ARC as ARC_FLAG_PREFETCH | ARC_FLAG_PRESCIENT_PREFETCH,
making ARC delay eviction by at least several seconds, or till the
actual read inside the transaction, that will promote it to demand
access.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Tony Hutter <hutter2@llnl.gov>
Signed-off-by: Alexander Motin <alexander.motin@TrueNAS.com>
Closes #18160
2026-02-17 11:54:58 -08:00
..
avl Prefer VERIFY0P(n) over VERIFY(n == NULL) 2025-08-07 11:41:37 -07:00
icp icp: emit .note.GNU-stack section for all ELF targets 2026-02-05 13:48:31 -08:00
lua SPDX: license tags: MIT 2025-03-13 17:56:54 -07:00
nvpair nvpair: chase FreeBSD xdrproc_t definition 2026-02-05 13:48:31 -08:00
os remove thread unsafe debug code causing FreeBSD double free panic 2026-02-05 13:48:31 -08:00
unicode SPDX: license tags: CDDL-1.0 2025-03-13 17:56:27 -07:00
zcommon Add knob to disable slow io notifications 2025-11-12 13:07:14 -08:00
zfs Improve caching for dbuf prefetches 2026-02-17 11:54:58 -08:00
zstd zstd: disable intrinsics 2025-11-12 13:06:22 -08:00
.gitignore FreeBSD: Ignore symlink to i386 includes 2022-08-02 16:34:23 -07:00
Kbuild.in spl: lift 64-bit math compat out to separate file 2026-02-05 13:48:31 -08:00
Makefile.bsd FreeBSD: Remove references to DEBUG_VFS_LOCKS 2026-02-05 13:48:31 -08:00
Makefile.in Fix --enable-invariants on FreeBSD 2026-02-05 13:48:31 -08:00