OpenZFS on Linux and FreeBSD
Go to file
Tom Caputi a8b2e30685 Support re-prioritizing asynchronous prefetches
When sequential scrubs were merged, all calls to arc_read()
(including prefetch IOs) were given ZIO_PRIORITY_ASYNC_READ.
Unfortunately, this behaves badly with an existing issue where
prefetch IOs cannot be re-prioritized after the issue. The
result is that synchronous reads end up in the same vdev_queue
as the scrub IOs and can have (in some workloads) multiple
seconds of latency.

This patch incorporates 2 changes. The first ensures that all
scrub IOs are given ZIO_PRIORITY_SCRUB to allow the vdev_queue
code to differentiate between these I/Os and user prefetches.
Second, this patch introduces zio_change_priority() to provide
the missing capability to upgrade a zio's priority.

Reviewed by: George Wilson <george.wilson@delphix.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Tom Caputi <tcaputi@datto.com>
Closes #6921 
Closes #6926
2017-12-21 09:13:06 -08:00
.github Update for cppcheck v1.80 2017-11-18 14:08:00 -08:00
cmd vdev_id: new slot type ses 2017-12-20 09:42:07 -08:00
config Fix --with-systemd on Debian-based distributions (#6963) 2017-12-17 14:08:48 -08:00
contrib Honor --with-mounthelperdir where applicable 2017-12-17 14:14:07 -08:00
etc Cleanup systemd dependencies 2017-11-08 09:39:15 -08:00
include Support re-prioritizing asynchronous prefetches 2017-12-21 09:13:06 -08:00
lib Remove lib/libspl/include/sys/frame.h 2017-12-17 14:02:29 -08:00
man vdev_id: new slot type ses 2017-12-20 09:42:07 -08:00
module Support re-prioritizing asynchronous prefetches 2017-12-21 09:13:06 -08:00
rpm Fix --with-systemd on Debian-based distributions (#6963) 2017-12-17 14:08:48 -08:00
scripts OpenZFS 8794 - cstyle generates warnings with recent perl 2017-12-19 12:54:08 -08:00
tests Support re-prioritizing asynchronous prefetches 2017-12-21 09:13:06 -08:00
udev Fix spelling 2017-01-03 11:31:18 -06:00
.gitignore Add configure option to enable gcov analysis 2017-09-15 10:24:13 -07:00
.gitmodules Add zimport.sh compatibility test script 2014-02-21 12:10:31 -08:00
.travis.yml Add .travis.yml 2017-11-13 09:18:18 -08:00
AUTHORS Add a missing > to AUTHORS 2014-09-02 14:18:53 -07:00
COPYRIGHT Encryption patch follow-up 2017-10-11 16:54:48 -04:00
DISCLAIMER Fix minor typos and update marketing copy. 2013-03-21 12:51:06 -07:00
META Tag zfs-0.7.0 2017-07-26 10:13:25 -07:00
Makefile.am Update for cppcheck v1.80 2017-11-18 14:08:00 -08:00
OPENSOLARIS.LICENSE Add CDDL license file 2008-12-01 14:49:34 -08:00
README.markdown Add scan.coverity.com badge to README 2017-10-30 16:21:24 -07:00
TEST Refresh TEST file to include new variables 2017-11-08 11:09:30 -08:00
autogen.sh build: do not call boilerplate ourself 2013-04-02 10:55:20 -07:00
configure.ac contrib/initramfs: switch to automake 2017-11-07 14:53:57 -08:00
copy-builtin Allow c99 when building ZFS in the kernel tree 2017-03-27 12:31:15 -07:00
io_spa- Support re-prioritizing asynchronous prefetches 2017-12-21 09:13:06 -08:00
spa_stats.io_history Support re-prioritizing asynchronous prefetches 2017-12-21 09:13:06 -08:00
zfs.release.in Move zfs.release generation to configure step 2012-07-12 12:22:51 -07:00

README.markdown

img

ZFS on Linux is an advanced file system and volume manager which was originally developed for Solaris and is now maintained by the OpenZFS community.

codecov coverity

Official Resources

Installation

Full documentation for installing ZoL on your favorite Linux distribution can be found at our site.

Contribute & Develop

We have a separate document with contribution guidelines.