e8ac4557af
Without plugging, the default 'noop' scheduler will not merge the BIOs which are part of a large ZIO. Reviewed-by: Andreas Dilger <andreas.dilger@intel.com> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Isaac Huang <he.huang@intel.com> Closes #5181
45 lines
1.1 KiB
Plaintext
45 lines
1.1 KiB
Plaintext
dnl #
|
|
dnl # 2.6.32-2.6.35 API - The BIO_RW_UNPLUG enum can be used as a hint
|
|
dnl # to unplug the queue.
|
|
dnl #
|
|
AC_DEFUN([ZFS_AC_KERNEL_BLK_QUEUE_HAVE_BIO_RW_UNPLUG], [
|
|
AC_MSG_CHECKING([whether the BIO_RW_UNPLUG enum is available])
|
|
tmp_flags="$EXTRA_KCFLAGS"
|
|
EXTRA_KCFLAGS="${NO_UNUSED_BUT_SET_VARIABLE}"
|
|
ZFS_LINUX_TRY_COMPILE([
|
|
#include <linux/blkdev.h>
|
|
],[
|
|
extern enum bio_rw_flags rw;
|
|
|
|
rw = BIO_RW_UNPLUG;
|
|
],[
|
|
AC_MSG_RESULT(yes)
|
|
AC_DEFINE(HAVE_BLK_QUEUE_HAVE_BIO_RW_UNPLUG, 1,
|
|
[BIO_RW_UNPLUG is available])
|
|
],[
|
|
AC_MSG_RESULT(no)
|
|
])
|
|
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"
|
|
])
|