Go to file
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
.github Update issue templates, commitcheck and Contributing.md 2020-09-23 09:53:26 -07:00
cmd zfs userspace: use zfs_path_to_zhandle so argument can be a path 2020-09-25 14:37:10 -07:00
config config/zfs-build.m4: never define _initramfs in RPM_DEFINE_UTIL 2020-09-12 08:22:07 -07:00
contrib contrib/initramfs: fix shellcheck and checkbashisms errors with shebang 2020-09-22 16:10:09 -07:00
etc Fix another dependency loop 2020-08-28 10:17:14 -07:00
include zfetch: Don't issue new streams when old have not completed 2020-09-27 17:08:38 -07:00
lib zpool command complains about /etc/exports.d 2020-09-25 13:09:40 -07:00
man zfs userspace: use zfs_path_to_zhandle so argument can be a path 2020-09-25 14:37:10 -07:00
module zfetch: Don't issue new streams when old have not completed 2020-09-27 17:08:38 -07:00
rpm zfs label bootenv should store data as nvlist 2020-09-15 15:42:27 -07:00
scripts Update issue templates, commitcheck and Contributing.md 2020-09-23 09:53:26 -07:00
tests vdev_ashift should only be set once 2020-09-18 12:13:47 -07:00
udev Centralize variable substitution 2020-07-14 17:33:44 -07:00
.editorconfig Add an .editorconfig; document git whitespace settings 2020-01-27 13:32:52 -08:00
.gitignore Add FreeBSD support to OpenZFS 2020-04-14 11:36:28 -07:00
.gitmodules Add zimport.sh compatibility test script 2014-02-21 12:10:31 -08:00
AUTHORS Add zstd support to zfs 2020-08-20 10:30:06 -07:00
autogen.sh Cause autogen.sh to fail if autoreconf fails 2018-07-06 09:27:37 -07:00
CODE_OF_CONDUCT.md Add CODE_OF_CONDUCT.md 2019-04-30 10:58:45 -07:00
configure.ac zfs label bootenv should store data as nvlist 2020-09-15 15:42:27 -07:00
copy-builtin Move zfs_gitrev.h to build directory 2020-06-24 18:19:28 -07:00
COPYRIGHT Fix typos 2020-06-09 21:24:09 -07:00
cppcheck-suppressions.txt Import ZStandard v1.4.5 2020-08-20 10:30:06 -07:00
LICENSE Update build system and packaging 2018-05-29 16:00:33 -07:00
Makefile.am Silence 'make checkbashisms' 2020-08-20 13:45:47 -07:00
META Tag 2.0.0-rc1 2020-08-25 13:11:25 -07:00
NEWS Fix NEWS file 2020-08-26 21:44:41 -07:00
NOTICE Update build system and packaging 2018-05-29 16:00:33 -07:00
README.md Update wiki links with new address 2020-06-03 19:46:31 -07:00
TEST Remove CI builder customization from TEST 2020-03-16 10:46:03 -07:00
zfs.release.in Move zfs.release generation to configure step 2012-07-12 12:22:51 -07:00

img

OpenZFS is an advanced file system and volume manager which was originally developed for Solaris and is now maintained by the OpenZFS community. This repository contains the code for running OpenZFS on Linux and FreeBSD.

codecov coverity

Official Resources

Installation

Full documentation for installing OpenZFS on your favorite Linux distribution can be found at the ZoL Site.

Contribute & Develop

We have a separate document with contribution guidelines.

We have a Code of Conduct.

Release

OpenZFS is released under a CDDL license. For more details see the NOTICE, LICENSE and COPYRIGHT files; UCRL-CODE-235197

Supported Kernels

  • The META file contains the officially recognized supported Linux kernel versions.
  • Supported FreeBSD versions are 12-STABLE and 13-CURRENT.