mirror_zfs/module
Matthew Macy af20b97078
zfetch: Don't issue new streams when old have not completed
The current dmu_zfetch code implicitly assumes that I/Os complete
within min_sec_reap seconds. With async dmu and a readonly workload
(and thus no exponential backoff in operations from the "write
throttle") such as L2ARC rebuild it is possible to saturate the drives
with I/O requests. These are then effectively compounded with prefetch
requests.

This change reference counts streams and prevents them from being
recycled after their min_sec_reap timeout if they still have
outstanding I/Os.

Reviewed-by: Alexander Motin <mav@FreeBSD.org>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Matt Macy <mmacy@FreeBSD.org>
Closes #10900
2020-09-27 17:08:38 -07:00
..
avl Links in Source Files 2020-09-02 09:42:12 -07:00
icp Prefix zfs internal endian checks with _ZFS 2020-07-28 13:02:49 -07:00
lua FreeBSD: Reduce stack usage of Lua 2020-09-22 16:03:11 -07:00
nvpair Links in Source Files 2020-09-02 09:42:12 -07:00
os Fix PREEMPTION=y and BLK_CGROUP=y config on arm64 2020-09-25 13:28:35 -07:00
spl Cleanup linux module kbuild files 2020-06-10 09:24:15 -07:00
unicode Prefix zfs internal endian checks with _ZFS 2020-07-28 13:02:49 -07:00
zcommon Rename acltype=posixacl to acltype=posix 2020-09-16 12:26:06 -07:00
zfs zfetch: Don't issue new streams when old have not completed 2020-09-27 17:08:38 -07:00
zstd module/zstd: pass -U__BMI__ 2020-08-27 15:50:13 -07:00
.gitignore Cleanup linux module kbuild files 2020-06-10 09:24:15 -07:00
Kbuild.in Add zstd support to zfs 2020-08-20 10:30:06 -07:00
Makefile.bsd module/zstd: pass -U__BMI__ 2020-08-27 15:50:13 -07:00
Makefile.in Add zstd support to zfs 2020-08-20 10:30:06 -07:00