aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwli5 <[email protected]>2017-10-21 02:11:25 +0800
committerTony Hutter <[email protected]>2017-11-20 16:19:23 -0600
commit318fdeb51f244c76ed03b40ef42ebdf7c510862a (patch)
tree7a32edfae66d4cedcf34da94df74e9187d5098c7
parentd3d20bf4428630e087041eb12e75c1f1f39deda8 (diff)
Support integration with new QAT products
Support integration with new QAT products: Intel(R) C62x Chipset, or Atom(R) C3000 Processor Product Family SoC: 1. Detect new file name in auto-conf. 2. Change MAX_INSTANCES to 48. 3. Change "num_inst" to U16 to clean a build warning. Reviewed-by: George Melikov <[email protected]> Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Weigang Li <[email protected]> Closes #6767
-rw-r--r--config/kernel.m44
-rw-r--r--module/zfs/qat_compress.c8
2 files changed, 7 insertions, 5 deletions
diff --git a/config/kernel.m4 b/config/kernel.m4
index c3ed5cf33..b759ccd39 100644
--- a/config/kernel.m4
+++ b/config/kernel.m4
@@ -532,10 +532,10 @@ AC_DEFUN([ZFS_AC_QAT], [
AC_MSG_RESULT([$qatbuild])
QAT_OBJ=${qatbuild}
- AS_IF([ ! test -e "$QAT_OBJ/icp_qa_al.ko"], [
+ AS_IF([ ! test -e "$QAT_OBJ/icp_qa_al.ko" && ! test -e "$QAT_OBJ/qat_api.ko"], [
AC_MSG_ERROR([
*** Please make sure the qat driver is installed then try again.
- *** Failed to find icp_qa_al.ko in:
+ *** Failed to find icp_qa_al.ko or qat_api.ko in:
$QAT_OBJ])
])
diff --git a/module/zfs/qat_compress.c b/module/zfs/qat_compress.c
index 99d1c9a12..ea56f144c 100644
--- a/module/zfs/qat_compress.c
+++ b/module/zfs/qat_compress.c
@@ -34,9 +34,11 @@
/*
* Max instances in QAT device, each instance is a channel to submit
- * jobs to QAT hardware
+ * jobs to QAT hardware, this is only for pre-allocating instance,
+ * and session arrays, the actual number of instances are defined in
+ * the QAT driver's configure file.
*/
-#define MAX_INSTANCES 6
+#define MAX_INSTANCES 48
/*
* ZLIB head and foot size
@@ -104,7 +106,7 @@ static kstat_t *qat_ksp;
static CpaInstanceHandle dc_inst_handles[MAX_INSTANCES];
static CpaDcSessionHandle session_handles[MAX_INSTANCES];
static CpaBufferList **buffer_array[MAX_INSTANCES];
-static Cpa32U num_inst = 0;
+static Cpa16U num_inst = 0;
static Cpa32U inst_num = 0;
static boolean_t qat_init_done = B_FALSE;
int zfs_qat_disable = 0;