From: wli5 Date: Fri, 20 Oct 2017 18:11:25 +0000 (+0800) Subject: Support integration with new QAT products X-Git-Tag: zfs-0.7.4~30 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;ds=sidebyside;h=318fdeb51f244c76ed03b40ef42ebdf7c510862a;hp=d3d20bf4428630e087041eb12e75c1f1f39deda8;p=zfs 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 Reviewed-by: Brian Behlendorf Signed-off-by: Weigang Li Closes #6767 --- 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;