zfs/config
Etienne Dechamps 34037afe24 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>
2012-02-07 16:23:06 -08:00
..
Rules.am Check for -Wno-unused-but-set-variable gcc support 2011-06-14 14:43:22 -07:00
always-no-unused-but-set-variable.m4 In autoconf v2.68, AC_LANG_PROGRAM must be quoted 2011-11-28 11:16:33 -08:00
arch.am Add make rule for building Arch Linux packages 2011-12-14 19:14:23 -08:00
config.awk Add build system 2010-08-31 13:41:27 -07:00
config.guess Add initial autoconf products 2010-08-31 13:42:02 -07:00
config.sub Add initial autoconf products 2010-08-31 13:42:02 -07:00
deb.am Avoid 'rpm -q' bug for 'make pkg' 2011-07-01 12:39:25 -07:00
depcomp Add initial autoconf products 2010-08-31 13:42:02 -07:00
install-sh Add initial autoconf products 2010-08-31 13:42:02 -07:00
kernel-bdev-block-device-operations.m4 Fix configure tests to play nice with GCC 4.6 2011-11-29 16:14:25 -08:00
kernel-bdev-logical-size.m4 Fix configure tests to play nice with GCC 4.6 2011-11-29 16:14:25 -08:00
kernel-bdi-setup-and-register.m4 Simplify BDI integration 2011-11-08 10:19:03 -08:00
kernel-bdi.m4 Add backing_device_info per-filesystem 2011-08-04 13:37:38 -07:00
kernel-bio-empty-barrier.m4 Add build system 2010-08-31 13:41:27 -07:00
kernel-bio-end-io-t-args.m4 Fix gcc configure warnings 2011-04-19 10:10:47 -07:00
kernel-bio-failfast.m4 Fix gcc configure warnings 2011-04-19 10:10:47 -07:00
kernel-bio-rw-syncio.m4 Fix gcc configure warnings 2011-04-19 10:10:47 -07:00
kernel-blk-end-request.m4 Fix configure tests to play nice with GCC 4.6 2011-11-29 16:14:25 -08:00
kernel-blk-fetch-request.m4 Fix configure tests to play nice with GCC 4.6 2011-11-29 16:14:25 -08:00
kernel-blk-queue-flush.m4 Fix synchronicity for ZVOLs. 2012-02-07 16:23:06 -08:00
kernel-blk-queue-io-opt.m4 Improve ZVOL queue behavior. 2012-02-07 16:23:06 -08:00
kernel-blk-queue-max-hw-sectors.m4 Improve ZVOL queue behavior. 2012-02-07 16:23:06 -08:00
kernel-blk-queue-max-segments.m4 Improve ZVOL queue behavior. 2012-02-07 16:23:06 -08:00
kernel-blk-queue-nonrot.m4 Improve ZVOL queue behavior. 2012-02-07 16:23:06 -08:00
kernel-blk-queue-physical-block-size.m4 Improve ZVOL queue behavior. 2012-02-07 16:23:06 -08:00
kernel-blk-requeue-request.m4 Fix configure tests to play nice with GCC 4.6 2011-11-29 16:14:25 -08:00
kernel-blk-rq-bytes.m4 Fix configure tests to play nice with GCC 4.6 2011-11-29 16:14:25 -08:00
kernel-blk-rq-pos.m4 Fix configure tests to play nice with GCC 4.6 2011-11-29 16:14:25 -08:00
kernel-blk-rq-sectors.m4 Fix configure tests to play nice with GCC 4.6 2011-11-29 16:14:25 -08:00
kernel-blkdev-get-by-path.m4 Linux 2.6.38 compat, blkdev_get_by_path() 2011-02-23 12:29:38 -08:00
kernel-check-disk-size-change.m4 Fix 'zfs set volsize=N pool/dataset' 2011-05-02 08:54:40 -07:00
kernel-d-obtain-alias.m4 Implemented NFS export_operations. 2011-04-29 12:36:13 -07:00
kernel-evict-inode.m4 Improve HAVE_EVICT_INODE check 2011-08-08 16:42:09 -07:00
kernel-fmode-t.m4 Fix gcc configure warnings 2011-04-19 10:10:47 -07:00
kernel-fsync.m4 Linux 3.1 compat, fops->fsync() 2011-11-10 10:03:08 -08:00
kernel-get-disk-ro.m4 Fix configure tests to play nice with GCC 4.6 2011-11-29 16:14:25 -08:00
kernel-insert-inode-locked.m4 Linux 2.6.28 compat, insert_inode_locked() 2011-03-22 12:15:54 -07:00
kernel-invalidate-bdev-args.m4 Fix gcc configure warnings 2011-04-19 10:10:47 -07:00
kernel-kobj-name-len.m4 Fix gcc configure warnings 2011-04-19 10:10:47 -07:00
kernel-mount-nodev.m4 Linux compat 2.6.39: mount_nodev() 2011-07-01 13:36:39 -07:00
kernel-open-bdev-exclusive.m4 Add build system 2010-08-31 13:41:27 -07:00
kernel-rq-for-each_segment.m4 Fix configure tests to play nice with GCC 4.6 2011-11-29 16:14:25 -08:00
kernel-rq-is_sync.m4 Fix configure tests to play nice with GCC 4.6 2011-11-29 16:14:25 -08:00
kernel-security-inode-init.m4 Linux 3.2 compat, security_inode_init_security() 2012-01-12 15:06:39 -08:00
kernel-set-nlink.m4 Linux 3.2 compat: set_nlink() 2011-12-16 20:02:52 -08:00
kernel-show-options.m4 Linux 3.3 compat, sops->show_options() 2012-02-03 10:02:01 -08:00
kernel-shrink.m4 Linux 3.1 compat, super_block->s_shrink 2012-01-11 11:46:02 -08:00
kernel-truncate-setsize.m4 Tear down and flush the mmap region 2011-06-27 09:59:19 -07:00
kernel-xattr-handler.m4 Fix gcc configure warnings 2011-04-19 10:10:47 -07:00
kernel.m4 Improve ZVOL queue behavior. 2012-02-07 16:23:06 -08:00
ltmain.sh Refresh autogen.sh products 2010-12-07 15:33:12 -08:00
missing Add initial autoconf products 2010-08-31 13:42:02 -07:00
rpm.am Add build system 2010-08-31 13:41:27 -07:00
suppressed-warnings.txt Suppress packaging warning 2011-11-08 11:32:04 -08:00
tgz.am Avoid 'rpm -q' bug for 'make pkg' 2011-07-01 12:39:25 -07:00
user-arch.m4 Add build system 2010-08-31 13:41:27 -07:00
user-frame-larger-than.m4 In autoconf v2.68, AC_LANG_PROGRAM must be quoted 2011-11-28 11:16:33 -08:00
user-ioctl.m4 Add build system 2010-08-31 13:41:27 -07:00
user-libblkid.m4 In autoconf v2.68, AC_LANG_PROGRAM must be quoted 2011-11-28 11:16:33 -08:00
user-libuuid.m4 Add build system 2010-08-31 13:41:27 -07:00
user-nptl_guard_within_stack.m4 In autoconf v2.68, AC_LANG_PROGRAM must be quoted 2011-11-28 11:16:33 -08:00
user-selinux.m4 Autoconf selinux support 2011-01-28 12:45:19 -08:00
user-udev.m4 Move udev rules from /etc/udev to /lib/udev 2011-08-08 16:21:10 -07:00
user-zlib.m4 Add build system 2010-08-31 13:41:27 -07:00
user.m4 Move udev rules from /etc/udev to /lib/udev 2011-08-08 16:21:10 -07:00
zfs-build.m4 Run ZFS_AC_PACMAN only if $VENDOR is "arch" 2012-01-13 09:03:11 -08:00
zfs-meta.m4 Add build system 2010-08-31 13:41:27 -07:00