-AC_DEFUN([ZFS_AC_SPL], [
- AC_ARG_WITH([spl],
- AS_HELP_STRING([--with-spl=PATH],
- [Path to spl source]),
- [splsrc="$withval"])
-
- AC_ARG_WITH([spl-obj],
- AS_HELP_STRING([--with-spl-obj=PATH],
- [Path to spl build objects]),
- [splbuild="$withval"])
-
- AC_ARG_WITH([spl-timeout],
- AS_HELP_STRING([--with-spl-timeout=SECS],
- [Wait SECS for SPL header and symver file @<:@default=0@:>@]),
- [timeout="$withval"], [timeout=0])
-
- dnl #
- dnl # The existence of spl.release.in is used to identify a valid
- dnl # source directory. In order of preference:
- dnl #
- splsrc0="/var/lib/dkms/spl/${VERSION}/build"
- splsrc1="/usr/local/src/spl-${VERSION}/${LINUX_VERSION}"
- splsrc2="/usr/local/src/spl-${VERSION}"
- splsrc3="/usr/src/spl-${VERSION}/${LINUX_VERSION}"
- splsrc4="/usr/src/spl-${VERSION}"
- splsrc5="../spl/"
- splsrc6="$LINUX"
-
- AC_MSG_CHECKING([spl source directory])
- AS_IF([test -z "${splsrc}"], [
- AS_IF([ test -e "${splsrc0}/spl.release.in"], [
- splsrc=${splsrc0}
- ], [ test -e "${splsrc1}/spl.release.in"], [
- splsrc=${splsrc1}
- ], [ test -e "${splsrc2}/spl.release.in"], [
- splsrc=${splsrc2}
- ], [ test -e "${splsrc3}/spl.release.in"], [
- splsrc=$(readlink -f "${splsrc3}")
- ], [ test -e "${splsrc4}/spl.release.in" ], [
- splsrc=${splsrc4}
- ], [ test -e "${splsrc5}/spl.release.in"], [
- splsrc=$(readlink -f "${splsrc5}")
- ], [ test -e "${splsrc6}/spl.release.in" ], [
- splsrc=${splsrc6}
- ], [
- splsrc="[Not found]"
- ])
- ], [
- AS_IF([test "$splsrc" = "NONE"], [
- splbuild=NONE
- splsrcver=NONE
+dnl # Detect the QAT module to be built against
+dnl # QAT provides hardware acceleration for data compression:
+dnl # https://01.org/intel-quickassist-technology
+dnl # * Download and install QAT driver from the above link
+dnl # * Start QAT driver in your system:
+dnl # service qat_service start
+dnl # * Enable QAT in ZFS, e.g.:
+dnl # ./configure --with-qat=<qat-driver-path>/QAT1.6
+dnl # make
+dnl # * Set GZIP compression in ZFS dataset:
+dnl # zfs set compression = gzip <dataset>
+dnl # Then the data written to this ZFS pool is compressed
+dnl # by QAT accelerator automatically, and de-compressed by
+dnl # QAT when read from the pool.
+dnl # * Get QAT hardware statistics by:
+dnl # cat /proc/icp_dh895xcc_dev/qat
+dnl # * To disable QAT:
+dnl # insmod zfs.ko zfs_qat_disable=1
+dnl #
+AC_DEFUN([ZFS_AC_QAT], [
+ AC_ARG_WITH([qat],
+ AS_HELP_STRING([--with-qat=PATH],
+ [Path to qat source]),
+ AS_IF([test "$withval" = "yes"],
+ AC_MSG_ERROR([--with-qat=PATH requires a PATH]),
+ [qatsrc="$withval"]))
+
+ AC_ARG_WITH([qat-obj],
+ AS_HELP_STRING([--with-qat-obj=PATH],
+ [Path to qat build objects]),
+ [qatbuild="$withval"])
+
+ AS_IF([test ! -z "${qatsrc}"], [
+ AC_MSG_CHECKING([qat source directory])
+ AC_MSG_RESULT([$qatsrc])
+ QAT_SRC="${qatsrc}/quickassist"
+ AS_IF([ test ! -e "$QAT_SRC/include/cpa.h"], [
+ AC_MSG_ERROR([
+ *** Please make sure the qat driver package is installed
+ *** and specify the location of the qat source with the
+ *** '--with-qat=PATH' option then try again. Failed to
+ *** find cpa.h in:
+ ${QAT_SRC}/include])