mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-23 10:54:35 +03:00
Improve ZVOL queue behavior.
The Linux block device queue subsystem exposes a number of configurable settings described in Linux block/blk-settings.c. The defaults for these settings are tuned for hard drives, and are not optimized for ZVOLs. Proper configuration of these options would allow upper layers (I/O scheduler) to take better decisions about write merging and ordering. Detailed rationale: - max_hw_sectors is set to unlimited (UINT_MAX). zvol_write() is able to handle writes of any size, so there's no reason to impose a limit. Let the upper layer decide. - max_segments and max_segment_size are set to unlimited. zvol_write() will copy the requests' contents into a dbuf anyway, so the number and size of the segments are irrelevant. Let the upper layer decide. - physical_block_size and io_opt are set to the ZVOL's block size. This has the potential to somewhat alleviate issue #361 for ZVOLs, by warning the upper layers that writes smaller than the volume's block size will be slow. - The NONROT flag is set to indicate this isn't a rotational device. Although the backing zpool might be composed of rotational devices, the resulting ZVOL often doesn't exhibit the same behavior due to the COW mechanisms used by ZFS. Setting this flag will prevent upper layers from making useless decisions (such as reordering writes) based on incorrect assumptions about the behavior of the ZVOL. Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
This commit is contained in:
committed by
Brian Behlendorf
parent
b18019d2d8
commit
34037afe24
@@ -50,6 +50,11 @@ am__aclocal_m4_deps = \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-segments.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-nonrot.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-physical-block-size.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-requeue-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-rq-bytes.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-rq-pos.m4 \
|
||||
|
||||
@@ -52,6 +52,11 @@ am__aclocal_m4_deps = \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-segments.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-nonrot.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-physical-block-size.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-requeue-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-rq-bytes.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-rq-pos.m4 \
|
||||
|
||||
@@ -52,6 +52,11 @@ am__aclocal_m4_deps = \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-segments.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-nonrot.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-physical-block-size.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-requeue-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-rq-bytes.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-rq-pos.m4 \
|
||||
|
||||
@@ -52,6 +52,11 @@ am__aclocal_m4_deps = \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-segments.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-nonrot.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-physical-block-size.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-requeue-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-rq-bytes.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-rq-pos.m4 \
|
||||
|
||||
@@ -52,6 +52,11 @@ am__aclocal_m4_deps = \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-segments.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-nonrot.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-physical-block-size.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-requeue-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-rq-bytes.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-rq-pos.m4 \
|
||||
|
||||
@@ -52,6 +52,11 @@ am__aclocal_m4_deps = \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-segments.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-nonrot.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-physical-block-size.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-requeue-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-rq-bytes.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-rq-pos.m4 \
|
||||
|
||||
@@ -51,6 +51,11 @@ am__aclocal_m4_deps = \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-segments.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-nonrot.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-physical-block-size.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-requeue-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-rq-bytes.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-rq-pos.m4 \
|
||||
|
||||
@@ -52,6 +52,11 @@ am__aclocal_m4_deps = \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-segments.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-nonrot.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-physical-block-size.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-requeue-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-rq-bytes.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-rq-pos.m4 \
|
||||
|
||||
@@ -52,6 +52,11 @@ am__aclocal_m4_deps = \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-segments.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-nonrot.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-physical-block-size.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-requeue-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-rq-bytes.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-rq-pos.m4 \
|
||||
|
||||
@@ -52,6 +52,11 @@ am__aclocal_m4_deps = \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-segments.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-nonrot.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-physical-block-size.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-requeue-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-rq-bytes.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-rq-pos.m4 \
|
||||
|
||||
@@ -50,6 +50,11 @@ am__aclocal_m4_deps = \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-segments.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-nonrot.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-physical-block-size.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-requeue-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-rq-bytes.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-rq-pos.m4 \
|
||||
|
||||
@@ -52,6 +52,11 @@ am__aclocal_m4_deps = \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-segments.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-nonrot.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-physical-block-size.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-requeue-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-rq-bytes.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-rq-pos.m4 \
|
||||
|
||||
@@ -52,6 +52,11 @@ am__aclocal_m4_deps = \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-segments.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-nonrot.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-physical-block-size.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-requeue-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-rq-bytes.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-rq-pos.m4 \
|
||||
|
||||
@@ -52,6 +52,11 @@ am__aclocal_m4_deps = \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-segments.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-nonrot.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-physical-block-size.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-requeue-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-rq-bytes.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-rq-pos.m4 \
|
||||
|
||||
@@ -52,6 +52,11 @@ am__aclocal_m4_deps = \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-segments.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-nonrot.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-physical-block-size.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-requeue-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-rq-bytes.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-rq-pos.m4 \
|
||||
|
||||
@@ -52,6 +52,11 @@ am__aclocal_m4_deps = \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-segments.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-nonrot.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-physical-block-size.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-requeue-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-rq-bytes.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-rq-pos.m4 \
|
||||
|
||||
@@ -52,6 +52,11 @@ am__aclocal_m4_deps = \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-segments.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-nonrot.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-physical-block-size.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-requeue-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-rq-bytes.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-rq-pos.m4 \
|
||||
|
||||
@@ -52,6 +52,11 @@ am__aclocal_m4_deps = \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-segments.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-nonrot.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-physical-block-size.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-requeue-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-rq-bytes.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-rq-pos.m4 \
|
||||
|
||||
@@ -52,6 +52,11 @@ am__aclocal_m4_deps = \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-segments.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-nonrot.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-physical-block-size.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-requeue-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-rq-bytes.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-rq-pos.m4 \
|
||||
|
||||
@@ -52,6 +52,11 @@ am__aclocal_m4_deps = \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-segments.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-nonrot.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-physical-block-size.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-requeue-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-rq-bytes.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-rq-pos.m4 \
|
||||
|
||||
@@ -52,6 +52,11 @@ am__aclocal_m4_deps = \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-segments.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-nonrot.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-physical-block-size.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-requeue-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-rq-bytes.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-rq-pos.m4 \
|
||||
|
||||
Reference in New Issue
Block a user