diff options
author | Isaac Huang <[email protected]> | 2016-09-29 14:13:31 -0600 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2016-09-29 13:13:31 -0700 |
commit | e8ac4557af67a46a2cb90bd7db4d426c0b358d51 (patch) | |
tree | 4ce1e63abedea5fc71d3dde6415cebbdf806f080 /config/kernel-blk-queue-unplug.m4 | |
parent | 8a1cf1a5608151635b67d89613e51427b177dab0 (diff) |
Explicit block device plugging when submitting multiple BIOs
Without plugging, the default 'noop' scheduler will not merge
the BIOs which are part of a large ZIO.
Reviewed-by: Andreas Dilger <[email protected]>
Reviewed-by: Brian Behlendorf <[email protected]>
Signed-off-by: Isaac Huang <[email protected]>
Closes #5181
Diffstat (limited to 'config/kernel-blk-queue-unplug.m4')
-rw-r--r-- | config/kernel-blk-queue-unplug.m4 | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/config/kernel-blk-queue-unplug.m4 b/config/kernel-blk-queue-unplug.m4 index 45cc2322a..075fbccd1 100644 --- a/config/kernel-blk-queue-unplug.m4 +++ b/config/kernel-blk-queue-unplug.m4 @@ -21,3 +21,24 @@ AC_DEFUN([ZFS_AC_KERNEL_BLK_QUEUE_HAVE_BIO_RW_UNPLUG], [ ]) EXTRA_KCFLAGS="$tmp_flags" ]) + +AC_DEFUN([ZFS_AC_KERNEL_BLK_QUEUE_HAVE_BLK_PLUG], [ + AC_MSG_CHECKING([whether struct blk_plug is available]) + tmp_flags="$EXTRA_KCFLAGS" + EXTRA_KCFLAGS="${NO_UNUSED_BUT_SET_VARIABLE}" + ZFS_LINUX_TRY_COMPILE([ + #include <linux/blkdev.h> + ],[ + struct blk_plug plug; + + blk_start_plug(&plug); + blk_finish_plug(&plug); + ],[ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_BLK_QUEUE_HAVE_BLK_PLUG, 1, + [struct blk_plug is available]) + ],[ + AC_MSG_RESULT(no) + ]) + EXTRA_KCFLAGS="$tmp_flags" +]) |