diff --git a/1000-bugfix-support-5.10.patch b/1000-bugfix-support-5.10.patch new file mode 100644 index 0000000000000000000000000000000000000000..f10dec65b8cecd7cf995ee33e0a0c6f7977c7de1 --- /dev/null +++ b/1000-bugfix-support-5.10.patch @@ -0,0 +1,190 @@ +commit 6d3281629dd2d2eb46a4e88964e79fd1fccfedc5 +Author: Jiayu Ni +Date: Mon Oct 10 09:14:12 2022 +0800 + + Support 5.10 + +diff --git a/quickassist/qat/drivers/crypto/qat/Makefile b/quickassist/qat/drivers/crypto/qat/Makefile +index e7280d8..5312e72 100644 +--- a/quickassist/qat/drivers/crypto/qat/Makefile ++++ b/quickassist/qat/drivers/crypto/qat/Makefile +@@ -11,11 +11,9 @@ else ifeq ($(shell test $(VERSION) -ge 4 -a $(PATCHLEVEL) -ge 10; echo $$?), 0) + CONFIG_QAT_MDEV=1 + endif + endif +-ifeq ($(CONFIG_QAT_MDEV), 1) +-ifdef CONFIG_IRQ_BYPASS_MANAGER +- export CONFIG_CRYPTO_DEV_QAT_VDCM=m +-endif +-endif ++ ++export CONFIG_CRYPTO_DEV_QAT_VDCM=m ++ + + obj-$(CONFIG_CRYPTO_DEV_QAT) += qat_common/ + obj-$(CONFIG_CRYPTO_DEV_QAT_DH895xCC) += qat_dh895xcc/ +diff --git a/quickassist/qat/drivers/crypto/qat/qat_common/adf_vdcm_adi.c b/quickassist/qat/drivers/crypto/qat/qat_common/adf_vdcm_adi.c +index 1315682..2173eb0 100644 +--- a/quickassist/qat/drivers/crypto/qat/qat_common/adf_vdcm_adi.c ++++ b/quickassist/qat/drivers/crypto/qat/qat_common/adf_vdcm_adi.c +@@ -15,7 +15,7 @@ + #include + #endif + #endif +-#if (KERNEL_VERSION(5, 11, 0) <= LINUX_VERSION_CODE) ++#if (KERNEL_VERSION(5, 10, 0) <= LINUX_VERSION_CODE) + #include + #endif + #include "adf_common_drv.h" +@@ -409,7 +409,7 @@ void adf_vqat_release_irqs(struct adf_vdcm_vqat *vqat) + #endif + + #ifdef INTEL_NEXT +-#if (KERNEL_VERSION(5, 11, 0) > LINUX_VERSION_CODE) ++#if (KERNEL_VERSION(5, 10, 0) > LINUX_VERSION_CODE) + static int adf_vqat_get_pasid(struct adf_vdcm_vqat *vqat) + { + #if ((KERNEL_VERSION(5, 6, 0) == LINUX_VERSION_CODE) || \ +@@ -445,7 +445,7 @@ static int adf_vqat_get_pasid(struct adf_vdcm_vqat *vqat) + } + #endif + #endif +-#if (KERNEL_VERSION(5, 11, 0) <= LINUX_VERSION_CODE) ++#if (KERNEL_VERSION(5, 10, 0) <= LINUX_VERSION_CODE) + static int adf_vqat_get_pasid(struct adf_vdcm_vqat *vqat) + { + struct vfio_group *vfio_group; +@@ -536,12 +536,7 @@ static inline int adf_vqat_setup_iommu(struct adf_vdcm_vqat *vqat) + return -EINVAL; + } + /* Set mdev iommu device */ +-#if KERNEL_VERSION(5, 16, 0) <= LINUX_VERSION_CODE +- dev_err(mdev_dev(vqat->mdev), +- "%s : SIOV is not supported with this kernel\n", __func__); +- return -EINVAL; +- +-#elif KERNEL_VERSION(5, 13, 0) <= LINUX_VERSION_CODE ++#if KERNEL_VERSION(5, 10, 0) <= LINUX_VERSION_CODE + mdev_set_iommu_device(vqat->mdev, + &GET_DEV(vqat->parent)); + return 0; +@@ -1000,7 +995,7 @@ static void adf_vdcm_adi_vqat_release(struct adf_vdcm_vqat *vqat) + { + dev_info(mdev_dev(vqat->mdev), "Release vqat %p\n", vqat); + adf_vqat_release_irqs(vqat); +-#if (KERNEL_VERSION(5, 11, 0) <= LINUX_VERSION_CODE) ++#if (KERNEL_VERSION(5, 10, 0) <= LINUX_VERSION_CODE) + vfio_group_put_external_user(vqat->group); + #endif + adf_vdcm_adi_vqat_do_reset(vqat, false); +diff --git a/quickassist/qat/drivers/crypto/qat/qat_common/adf_vdcm_core.c b/quickassist/qat/drivers/crypto/qat/qat_common/adf_vdcm_core.c +index 616df63..5dc63ee 100644 +--- a/quickassist/qat/drivers/crypto/qat/qat_common/adf_vdcm_core.c ++++ b/quickassist/qat/drivers/crypto/qat/qat_common/adf_vdcm_core.c +@@ -58,7 +58,7 @@ struct adf_vdcm_ctx_blk { + static struct service_hndl adf_vdcm_srv_hndl; + static struct adf_vdcm_vqat_type adf_vqat_types[QAT_VQAT_TYPES_MAX]; + +-#if KERNEL_VERSION(5, 13, 0) <= LINUX_VERSION_CODE ++#if KERNEL_VERSION(5, 10, 0) <= LINUX_VERSION_CODE + static struct adf_vdcm_vqat_type *adf_vdcm_lookup_vqat_type(struct device *dev, + struct mdev_type *mtype); + #else +@@ -428,7 +428,7 @@ void adf_vdcm_notify_vqat_iov(struct adf_vdcm_vqat *vqat, u32 queue) + adf_vdcm_notify_vqat(vqat, ADF_VQAT_MISC_IRQ); + } + +-#if KERNEL_VERSION(5, 13, 0) <= LINUX_VERSION_CODE ++#if KERNEL_VERSION(5, 10, 0) <= LINUX_VERSION_CODE + static int adf_vdcm_vqat_create(struct mdev_device *mdev) + #else + static int adf_vdcm_vqat_create(struct kobject *kobj, struct mdev_device *mdev) +@@ -441,7 +441,7 @@ static int adf_vdcm_vqat_create(struct kobject *kobj, struct mdev_device *mdev) + struct adf_accel_dev *parent; + struct adf_vdcm_vqat_ops *ops; + +-#if KERNEL_VERSION(5, 13, 0) <= LINUX_VERSION_CODE ++#if KERNEL_VERSION(5, 10, 0) <= LINUX_VERSION_CODE + vqat_type = adf_vdcm_lookup_vqat_type(par_dev, mdev->type); + if (!vqat_type || !vqat_type->ag) + return -EOPNOTSUPP; +@@ -491,7 +491,7 @@ static int adf_vdcm_vqat_create(struct kobject *kobj, struct mdev_device *mdev) + return 0; + } + +-#if (KERNEL_VERSION(5, 11, 0) <= LINUX_VERSION_CODE) ++#if (KERNEL_VERSION(5, 10, 0) <= LINUX_VERSION_CODE) + static void adf_vdcm_vqat_request(struct mdev_device *mdev, unsigned int count) + { + struct adf_vdcm_vqat *vqat = mdev_get_drvdata(mdev); +@@ -1342,7 +1342,7 @@ static long adf_vdcm_vqat_ioctl(struct mdev_device *mdev, unsigned int cmd, + return 0; + } + +-#if KERNEL_VERSION(5, 13, 0) <= LINUX_VERSION_CODE ++#if KERNEL_VERSION(5, 10, 0) <= LINUX_VERSION_CODE + static ssize_t + available_instances_show(struct mdev_type *mtype, + struct mdev_type_attribute *attr, char *buf) +@@ -1351,14 +1351,14 @@ static ssize_t + available_instances_show(struct kobject *kobj, struct device *dev, char *buf) + #endif + { +-#if KERNEL_VERSION(5, 13, 0) <= LINUX_VERSION_CODE ++#if KERNEL_VERSION(5, 10, 0) <= LINUX_VERSION_CODE + struct device *dev = mtype_get_parent_dev(mtype); + #endif + struct pci_dev *pdev = container_of(dev, struct pci_dev, dev); + struct adf_accel_dev *accel_dev = NULL; + struct adf_vdcm_vqat_type *vqat_type; + +-#if KERNEL_VERSION(5, 13, 0) <= LINUX_VERSION_CODE ++#if KERNEL_VERSION(5, 10, 0) <= LINUX_VERSION_CODE + vqat_type = adf_vdcm_lookup_vqat_type(dev, mtype); + #else + vqat_type = adf_vdcm_lookup_vqat_type(dev, kobject_name(kobj)); +@@ -1392,7 +1392,7 @@ available_instances_show(struct kobject *kobj, struct device *dev, char *buf) + + MDEV_TYPE_ATTR_RO(available_instances); + +-#if KERNEL_VERSION(5, 13, 0) <= LINUX_VERSION_CODE ++#if KERNEL_VERSION(5, 10, 0) <= LINUX_VERSION_CODE + static ssize_t + name_show(struct mdev_type *mtype, struct mdev_type_attribute *attr, char *buf) + #else +@@ -1400,7 +1400,7 @@ static ssize_t + name_show(struct kobject *kobj, struct device *dev, char *buf) + #endif + { +-#if KERNEL_VERSION(5, 13, 0) <= LINUX_VERSION_CODE ++#if KERNEL_VERSION(5, 10, 0) <= LINUX_VERSION_CODE + struct adf_vdcm_vqat_type *vqat_type; + struct device *par_dev = mtype_get_parent_dev(mtype); + +@@ -1417,7 +1417,7 @@ name_show(struct kobject *kobj, struct device *dev, char *buf) + + MDEV_TYPE_ATTR_RO(name); + +-#if KERNEL_VERSION(5, 13, 0) <= LINUX_VERSION_CODE ++#if KERNEL_VERSION(5, 10, 0) <= LINUX_VERSION_CODE + static ssize_t device_api_show(struct mdev_type *mtype, + struct mdev_type_attribute *attr, char *buf) + #else +@@ -1450,7 +1450,7 @@ static struct mdev_parent_ops qat_vqat_vf_ops = { + .supported_type_groups = qat_vqat_vf_type_groups, + .create = adf_vdcm_vqat_create, + .remove = adf_vdcm_vqat_remove, +-#if KERNEL_VERSION(5, 15, 0) <= LINUX_VERSION_CODE ++#if KERNEL_VERSION(5, 10, 0) <= LINUX_VERSION_CODE + .open_device = adf_vdcm_vqat_open, + .close_device = adf_vdcm_vqat_release, + #else +@@ -1527,7 +1527,7 @@ struct adf_vdcm_vqat_type *adf_vdcm_vqat_type_by_id(enum vqat_type type_id) + return &adf_vqat_types[type_id]; + } + +-#if KERNEL_VERSION(5, 13, 0) <= LINUX_VERSION_CODE ++#if KERNEL_VERSION(5, 10, 0) <= LINUX_VERSION_CODE + static struct adf_vdcm_vqat_type *adf_vdcm_lookup_vqat_type(struct device *dev, + struct mdev_type *mtype) + { diff --git a/1001-bugfix-split-qat-vdcm-module.patch b/1001-bugfix-split-qat-vdcm-module.patch new file mode 100644 index 0000000000000000000000000000000000000000..daa0233dee4ee7adca1bfca1f8a6ef14519af1eb --- /dev/null +++ b/1001-bugfix-split-qat-vdcm-module.patch @@ -0,0 +1,102 @@ +From 283fa83620686579aba4035b3c1b5df6bc21cf06 Mon Sep 17 00:00:00 2001 +From: Hao Xiang +Date: Mon, 10 Oct 2022 20:23:36 +0800 +Subject: [PATCH] qat_4xxx: split qat_4xxx module with qat_vdcm module + +Remove qat_4xxx module dependency on qat_vdcm module by looking up +adf_vdcm_register_vqat_parent/adf_vdcm_unregister_vqat_parent function +symbols dynamically. + +Signed-off-by: Hao Xiang +--- + quickassist/build_system/build_files/qat_service | 2 ++ + .../qat/drivers/crypto/qat/qat_4xxx/adf_drv.c | 32 +++++++++++++++++----- + 2 files changed, 27 insertions(+), 7 deletions(-) + +diff --git a/quickassist/build_system/build_files/qat_service b/quickassist/build_system/build_files/qat_service +index 3c00a24..2c2e95e 100755 +--- a/quickassist/build_system/build_files/qat_service ++++ b/quickassist/build_system/build_files/qat_service +@@ -241,6 +241,7 @@ case $1 in + sleep 20 + fi + if [ $num4xxxDevicesPF != 0 ];then ++ lsmod | grep qat_vdcm >/dev/null 2>&1 || modprobe qat_vdcm + lsmod | grep qat_4xxx >/dev/null 2>&1 || modprobe qat_4xxx + fi + if [ `lsmod | grep "usdm_drv" | wc -l` == "0" ]; then +@@ -352,6 +353,7 @@ case $1 in + modprobe -q -r qat_d15xx + modprobe -q -r qat_c4xxx + modprobe -q -r qat_4xxx ++ modprobe -q -r qat_vdcm + modprobe -q -r qat_vqat + modprobe -q -r usdm_drv + modprobe -q -r intel_qat +diff --git a/quickassist/qat/drivers/crypto/qat/qat_4xxx/adf_drv.c b/quickassist/qat/drivers/crypto/qat/qat_4xxx/adf_drv.c +index 3d97831..309c8fe 100644 +--- a/quickassist/qat/drivers/crypto/qat/qat_4xxx/adf_drv.c ++++ b/quickassist/qat/drivers/crypto/qat/qat_4xxx/adf_drv.c +@@ -16,6 +16,7 @@ + #include + #include + #include ++#include + #ifdef CONFIG_CRYPTO_DEV_QAT_VDCM + #include + #endif +@@ -27,6 +28,12 @@ + #define ADF_SYSTEM_DEVICE(device_id) \ + {PCI_DEVICE(PCI_VENDOR_ID_INTEL, device_id)} + ++#ifdef CONFIG_CRYPTO_DEV_QAT_VDCM ++#include ++struct adf_vdcm_ctx_blk * (*adf_vdcm_register_vqat_parent_func)(struct adf_accel_dev *accel_dev,int total, enum vqat_type types[]); ++void (*adf_vdcm_unregister_vqat_parent_func)(struct adf_vdcm_ctx_blk *vdcm, struct adf_accel_dev *accel_dev); ++#endif ++ + static const struct pci_device_id adf_pci_tbl[] = { + ADF_SYSTEM_DEVICE(ADF_4XXX_PCI_DEVICE_ID), + ADF_SYSTEM_DEVICE(ADF_401XX_PCI_DEVICE_ID), +@@ -268,11 +275,16 @@ static int adf_probe(struct pci_dev *pdev, const struct pci_device_id *ent) + goto out_err_dev_stop; + + #ifdef CONFIG_CRYPTO_DEV_QAT_VDCM +- accel_dev->vdcm = adf_vdcm_register_vqat_parent(accel_dev, +- ARRAY_SIZE(vqat_types), +- vqat_types); +- if (!accel_dev->vdcm) +- goto out_err_dev_stop; ++ adf_vdcm_register_vqat_parent_func = (void *)kallsyms_lookup_name("adf_vdcm_register_vqat_parent"); ++ if (adf_vdcm_register_vqat_parent_func) { ++ accel_dev->vdcm = adf_vdcm_register_vqat_parent_func(accel_dev, ++ ARRAY_SIZE(vqat_types), ++ vqat_types); ++ if (!accel_dev->vdcm) ++ goto out_err_dev_stop; ++ } else { ++ pr_err("QAT: Function adf_vdcm_register_vqat_parent symbol not found\n"); ++ } + #endif + return ret; + +@@ -300,8 +312,14 @@ static void adf_remove(struct pci_dev *pdev) + } + #ifdef CONFIG_CRYPTO_DEV_QAT_VDCM + if (accel_dev->vdcm) { +- adf_vdcm_unregister_vqat_parent(accel_dev->vdcm, accel_dev); +- accel_dev->vdcm = NULL; ++ adf_vdcm_unregister_vqat_parent_func = (void *)kallsyms_lookup_name("adf_vdcm_unregister_vqat_parent"); ++ if (adf_vdcm_unregister_vqat_parent_func) { ++ adf_vdcm_unregister_vqat_parent_func(accel_dev->vdcm, accel_dev); ++ accel_dev->vdcm = NULL; ++ } else { ++ pr_err("QAT: Function adf_vdcm_unregister_vqat_parent symbol not found\n"); ++ return; ++ } + } + #endif + adf_dev_stop(accel_dev); +-- +1.8.3.1 + diff --git a/1002-bugfix-crash-of-rmmod-vdcm.patch b/1002-bugfix-crash-of-rmmod-vdcm.patch new file mode 100644 index 0000000000000000000000000000000000000000..6a92bc058f265aae4d445b3bc8c219f30908a3a4 --- /dev/null +++ b/1002-bugfix-crash-of-rmmod-vdcm.patch @@ -0,0 +1,46 @@ +From a4d3b2b9d12e98ead5daafcbd476baf23c7f0eed Mon Sep 17 00:00:00 2001 +From: Xuchun Shang +Date: Tue, 25 Oct 2022 15:28:59 +0800 +Subject: [PATCH] src: fix crash when rmmod qat_vdcm + +Signed-off-by: Xuchun Shang +--- + quickassist/qat/drivers/crypto/qat/qat_4xxx/adf_drv.c | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git a/quickassist/qat/drivers/crypto/qat/qat_4xxx/adf_drv.c b/quickassist/qat/drivers/crypto/qat/qat_4xxx/adf_drv.c +index 309c8fe..e683efb 100644 +--- a/quickassist/qat/drivers/crypto/qat/qat_4xxx/adf_drv.c ++++ b/quickassist/qat/drivers/crypto/qat/qat_4xxx/adf_drv.c +@@ -32,6 +32,7 @@ + #include + struct adf_vdcm_ctx_blk * (*adf_vdcm_register_vqat_parent_func)(struct adf_accel_dev *accel_dev,int total, enum vqat_type types[]); + void (*adf_vdcm_unregister_vqat_parent_func)(struct adf_vdcm_ctx_blk *vdcm, struct adf_accel_dev *accel_dev); ++struct module *vdcm_mod; + #endif + + static const struct pci_device_id adf_pci_tbl[] = { +@@ -275,6 +276,11 @@ static int adf_probe(struct pci_dev *pdev, const struct pci_device_id *ent) + goto out_err_dev_stop; + + #ifdef CONFIG_CRYPTO_DEV_QAT_VDCM ++ if (vdcm_mod == NULL) ++ vdcm_mod = find_module("qat_vdcm"); ++ if (vdcm_mod != NULL) { ++ try_module_get(vdcm_mod); ++ } + adf_vdcm_register_vqat_parent_func = (void *)kallsyms_lookup_name("adf_vdcm_register_vqat_parent"); + if (adf_vdcm_register_vqat_parent_func) { + accel_dev->vdcm = adf_vdcm_register_vqat_parent_func(accel_dev, +@@ -316,6 +322,8 @@ static void adf_remove(struct pci_dev *pdev) + if (adf_vdcm_unregister_vqat_parent_func) { + adf_vdcm_unregister_vqat_parent_func(accel_dev->vdcm, accel_dev); + accel_dev->vdcm = NULL; ++ if (vdcm_mod != NULL) ++ module_put(vdcm_mod); + } else { + pr_err("QAT: Function adf_vdcm_unregister_vqat_parent symbol not found\n"); + return; +-- +2.27.0 + diff --git a/1003-src-fix-warning-when-compiling.patch b/1003-src-fix-warning-when-compiling.patch new file mode 100644 index 0000000000000000000000000000000000000000..5227594ff51eecde2754766cec725abd595ab410 --- /dev/null +++ b/1003-src-fix-warning-when-compiling.patch @@ -0,0 +1,42 @@ +From ee295f3a0d5a9b6f6a219d4d34adc84e6b9be170 Mon Sep 17 00:00:00 2001 +From: Xuchun Shang +Date: Tue, 29 Nov 2022 11:32:10 +0800 +Subject: [PATCH] src: fix warning when compiling + +The dev->deviceName is an array which will never be null. + +Signed-off-by: Xuchun Shang +--- + .../lookaside/access_layer/src/common/ctrl/sal_compression.c | 2 +- + quickassist/lookaside/access_layer/src/common/ctrl/sal_crypto.c | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/quickassist/lookaside/access_layer/src/common/ctrl/sal_compression.c b/quickassist/lookaside/access_layer/src/common/ctrl/sal_compression.c +index 88f4fdb..ed37178 100644 +--- a/quickassist/lookaside/access_layer/src/common/ctrl/sal_compression.c ++++ b/quickassist/lookaside/access_layer/src/common/ctrl/sal_compression.c +@@ -1671,7 +1671,7 @@ CpaStatus cpaDcInstanceGetInfo2(const CpaInstanceHandle instanceHandle, + pInstanceInfo2->isOffloaded = CPA_TRUE; + /* Get the instance name and part name from the config file */ + dev = icp_adf_getAccelDevByAccelId(pCompressionService->pkgID); +- if (NULL == dev || NULL == dev->deviceName) ++ if (NULL == dev) + { + LAC_LOG_ERROR("Can not find device for the instance\n"); + LAC_OS_BZERO(pInstanceInfo2, sizeof(CpaInstanceInfo2)); +diff --git a/quickassist/lookaside/access_layer/src/common/ctrl/sal_crypto.c b/quickassist/lookaside/access_layer/src/common/ctrl/sal_crypto.c +index 64dea7b..1404595 100644 +--- a/quickassist/lookaside/access_layer/src/common/ctrl/sal_crypto.c ++++ b/quickassist/lookaside/access_layer/src/common/ctrl/sal_crypto.c +@@ -2480,7 +2480,7 @@ CpaStatus cpaCyInstanceGetInfo2(const CpaInstanceHandle instanceHandle_in, + + /* Get the instance name and part name*/ + dev = icp_adf_getAccelDevByAccelId(pCryptoService->pkgID); +- if (NULL == dev || NULL == dev->deviceName) ++ if (NULL == dev) + { + LAC_LOG_ERROR("Can not find device for the instance\n"); + LAC_OS_BZERO(pInstanceInfo2, sizeof(CpaInstanceInfo2)); +-- +2.37.3 + diff --git a/1004-build-split-kernel-space-and-user-space-building.patch b/1004-build-split-kernel-space-and-user-space-building.patch new file mode 100644 index 0000000000000000000000000000000000000000..200bc45851a9ad86d45e253e7cc84e53fd01dce4 --- /dev/null +++ b/1004-build-split-kernel-space-and-user-space-building.patch @@ -0,0 +1,335 @@ +From 895209fd197f6fffc1d3b99b3a0bed55820bbfd4 Mon Sep 17 00:00:00 2001 +Message-Id: <895209fd197f6fffc1d3b99b3a0bed55820bbfd4.1692171093.git.llfl@linux.alibaba.com> +From: Artie Ding +Date: Mon, 17 Jul 2023 16:36:58 +0800 +Subject: [PATCH 1004/1004] build: split kernel space and user space building + +Signed-off-by: Artie Ding +Signed-off-by: Kun(llfl) +--- + Makefile.in | 82 ++++++++++++++++++++++++++++++++++++++------ + configure | 26 +++++++------- + quickassist/Makefile | 21 ++++++------ + 3 files changed, 96 insertions(+), 33 deletions(-) + +diff --git a/Makefile.in b/Makefile.in +index ae48db8..90a0b0f 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -488,11 +488,17 @@ numVQATDevices := `lspci -vnd 8086: | egrep -c "$(INTEL_VENDORID):$(VQAT_DEVICE_ + isLegacyLoaded := `lsmod | egrep -c "icp_qa_al"` + + #Targets lists +-ALL_TARGETS = qat-driver-all quickassist-all adf-ctl-all qat-service-all adf-rl-all ++ALL_TARGETS = quickassist-all adf-ctl-all qat-service-all adf-rl-all + INSTALL_TARGETS = qat-driver-install quickassist-install adf-ctl-install qat-service-install + UNINSTALL_TARGETS = qat-driver-uninstall quickassist-uninstall qat-service-uninstall adf-ctl-uninstall sample-uninstall + CLEAN_TARGETS = qat-driver-clean quickassist-clean adf-ctl-clean qat-service-clean sample-clean + ++#User space targets lists ++ALL_US_TARGETS = quickassist-us-all adf-ctl-all qat-service-us-all adf-rl-all ++INSTALL_US_TARGETS = quickassist-install adf-ctl-install qat-service-install ++UNINSTALL_US_TARGETS = quickassist-uninstall qat-service-uninstall adf-ctl-uninstall sample-uninstall ++CLEAN_US_TARGETS = quickassist-clean adf-ctl-clean qat-service-clean sample-clean ++ + # Naming standards: + # + # Use XXX_DIR for directory paths for something +@@ -810,6 +816,9 @@ PRINT_ACC_DEVICE_INFO = $(PRINT_ACC_DEVICE_INFO_SH); PrintAccDeviceInfo + all: config.h + $(MAKE) $(AM_MAKEFLAGS) all-am + ++all-us: config.h ++ $(MAKE) $(AM_MAKEFLAGS) all-us-am ++ + .SUFFIXES: + am--refresh: Makefile + @: +@@ -1088,15 +1097,21 @@ distcleancheck: distclean + check-am: all-am + check: check-am + all-am: Makefile config.h all-local ++all-us-am: Makefile config.h all-us-local + installdirs: + install: install-am + install-exec: install-exec-am ++install-us-exec: install-us-exec-am + install-data: install-data-am + uninstall: uninstall-am ++uninstall-us: uninstall-us-am + + install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + ++install-us-am: all-us-am ++ @$(MAKE) $(AM_MAKEFLAGS) install-us-exec-am install-data-am ++ + installcheck: installcheck-am + install-strip: + if test -z '$(STRIP)'; then \ +@@ -1123,6 +1138,8 @@ clean: clean-am + + clean-am: clean-generic clean-local mostlyclean-am + ++clean-us-am: clean-generic clean-us-local mostlyclean-am ++ + distclean: distclean-am + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -f Makefile +@@ -1148,6 +1165,8 @@ install-dvi-am: + + install-exec-am: install-exec-local + ++install-us-exec-am: install-us-exec-local ++ + install-html: install-html-am + + install-html-am: +@@ -1188,23 +1207,25 @@ ps-am: + + uninstall-am: uninstall-local + ++uninstall-us-am: uninstall-us-local ++ + .MAKE: all install-am install-strip + +-.PHONY: CTAGS GTAGS TAGS all all-am all-local am--refresh check \ +- check-am clean clean-cscope clean-generic clean-local cscope \ ++.PHONY: CTAGS GTAGS TAGS all all-am all-us-am all-local all-us-local am--refresh check \ ++ check-am clean clean-cscope clean-generic clean-local clean-us-local cscope \ + cscopelist-am ctags ctags-am dist dist-all dist-bzip2 \ + dist-gzip dist-lzip dist-shar dist-tarZ dist-xz dist-zip \ + distcheck distclean distclean-generic distclean-hdr \ + distclean-tags distcleancheck distdir distuninstallcheck dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ +- install-exec install-exec-am install-exec-local install-html \ ++ install-exec install-exec-am install-exec-local install-us-exec-local install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \ +- uninstall-am uninstall-local ++ uninstall-am uninstall-us-am uninstall-local uninstall-us-local + + .PRECIOUS: Makefile + +@@ -1212,7 +1233,7 @@ uninstall-am: uninstall-local + # QUICKASSIST Makefile # + ######################## + +-quickassist-all: qat-driver-all ++quickassist-all: + @$(MAKE) -C $(QUICKASSIST_DIR) + + quickassist-install: +@@ -1222,6 +1243,20 @@ quickassist-uninstall: + quickassist-clean: + @$(MAKE) clean -C $(QUICKASSIST_DIR) + ++######################## ++# QUICKASSIST Makefile # ++######################## ++ ++quickassist-us-all: ++ @$(MAKE) -C $(QUICKASSIST_DIR) all_us ++ ++quickassist-us-install: ++ ++quickassist-us-uninstall: ++ ++quickassist-us-clean: ++ @$(MAKE) clean -C $(QUICKASSIST_DIR) ++ + ################### + # QAT Sample Code # + ################### +@@ -1266,7 +1301,7 @@ sample-clean: + # QAT Service # + ############### + +-qat-service-all: qat-driver-all quickassist-all adf-ctl-all adf-rl-all ++qat-service-all: quickassist-all adf-ctl-all adf-rl-all + @$(INSTALL) -D -m 750 $(QUICKASSIST_DIR)/build_system/build_files/qat_service $(ICP_BUILD_OUTPUT)/qat_service + @$(INSTALL) -D -m 750 $(QUICKASSIST_DIR)/build_system/build_files/vqat_ctl $(ICP_BUILD_OUTPUT)/vqat_ctl + @$(SED) -i "s|/usr/sbin/adf_ctl|$(prefix)/bin/adf_ctl|g" $(ICP_BUILD_OUTPUT)/qat_service +@@ -1771,11 +1806,21 @@ qat-service-uninstall: + qat-service-clean: + @$(ECHO) qat-service-clean + ++qat-service-us-all: ++ @$(INSTALL) -D -m 750 $(QUICKASSIST_DIR)/build_system/build_files/qat_service $(ICP_BUILD_OUTPUT)/qat_service ++ @$(INSTALL) -D -m 750 $(QUICKASSIST_DIR)/build_system/build_files/vqat_ctl $(ICP_BUILD_OUTPUT)/vqat_ctl ++ @$(SED) -i "s|/usr/sbin/adf_ctl|$(prefix)/bin/adf_ctl|g" $(ICP_BUILD_OUTPUT)/qat_service ++ @$(foreach bin, $(BIN_LIST), \ ++ if [ -e $(QUICKASSIST_QAT_DIR)/fw/$(bin) ]; then \ ++ $(INSTALL) -D -m 750 $(QUICKASSIST_QAT_DIR)/fw/$(bin) $(ICP_BUILD_OUTPUT)/$(notdir $(bin)); \ ++ fi; \ ++ ) ++ + ########################### + # RL related targets # + ########################### + +-adf-rl-all: qat-driver-all quickassist-all ++adf-rl-all: quickassist-all + @$(MAKE) -C $(ADF_RL_DIR) + @$(INSTALL) -D -m 750 $(ADF_RL_DIR)/sla_mgr/build/linux_2.6/user_space/sla_mgr $(ICP_BUILD_OUTPUT)/$(ADF_RL_SLA_MGR_BIN) + +@@ -1783,7 +1828,7 @@ adf-rl-all: qat-driver-all quickassist-all + # ADF_CTL related targets # + ########################### + +-adf-ctl-all: qat-driver-all quickassist-all adf-rl-all ++adf-ctl-all: quickassist-all adf-rl-all + @$(MAKE) -C $(ADF_CTL_DIR) + @$(INSTALL) -D -m 750 $(QUICKASSIST_DIR)/utilities/adf_ctl/adf_ctl $(ICP_BUILD_OUTPUT)/adf_ctl + @$(foreach conf, $(CONFIG_LIST), $(INSTALL) -D -m 750 $(QUICKASSIST_DIR)/utilities/adf_ctl/conf_files/$(conf) $(ICP_BUILD_OUTPUT)/$(conf);) +@@ -1856,6 +1901,14 @@ qat-driver-uninstall: + qat-driver-clean: + @$(MAKE) KDIR=$(KERNEL_SOURCE_ROOT) -C $(QAT_DRIVER_DIR) clean + ++usdm-driver-all: ++ @cd $(QUICKASSIST_DIR) && $(MAKE) cmn_ko ++ ++usdm-driver-uninstall: ++ ++usdm-driver-clean: ++ @cd $(QUICKASSIST_DIR) && $(MAKE) clean ++ + ########### + # Targets # + ########### +@@ -1869,6 +1922,15 @@ install-exec-local: $(INSTALL_TARGETS) + + uninstall-local: $(UNINSTALL_TARGETS) + ++all-us-local: $(ALL_US_TARGETS) ++ ++clean-us-local: $(CLEAN_US_TARGETS) ++ @$(RM) $(ICP_BUILD_OUTPUT) ++ ++install-us-exec-local: $(INSTALL_US_TARGETS) ++ ++uninstall-us-local: $(UNINSTALL_US_TARGETS) ++ + default-local: all + + samples: sample-all +@@ -1881,7 +1943,7 @@ device-info: + + .PHONY: device-info samples samples-install + +-.NOTPARALLEL: qat-service-all ++.NOTPARALLEL: qat-service-all qat-service-us-all + + export + +diff --git a/configure b/configure +index 42ee44d..6c36c19 100755 +--- a/configure ++++ b/configure +@@ -9110,19 +9110,19 @@ fi + + + # Check for kernel sources +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for kernel sources" >&5 +-$as_echo_n "checking for kernel sources... " >&6; } +-if test -d $KERNEL_SOURCE_ROOT; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +-$as_echo "yes" >&6; } +-else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +- as_fn_error $? " +- +- Kernel sources $KERNEL_SOURCE_ROOT not found. +- " "$LINENO" 5 +-fi ++# { $as_echo "$as_me:${as_lineno-$LINENO}: checking for kernel sources" >&5 ++# $as_echo_n "checking for kernel sources... " >&6; } ++# if test -d $KERNEL_SOURCE_ROOT; then ++# { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 ++# $as_echo "yes" >&6; } ++# else ++# { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++# $as_echo "no" >&6; } ++# as_fn_error $? " ++ ++# Kernel sources $KERNEL_SOURCE_ROOT not found. ++# " "$LINENO" 5 ++# fi + + + # ICP_DEBUG +diff --git a/quickassist/Makefile b/quickassist/Makefile +index 808f67f..f1c2c43 100755 +--- a/quickassist/Makefile ++++ b/quickassist/Makefile +@@ -67,6 +67,7 @@ LAC_LIB_DIR=$(LAC_PATH)/build/libs + + #Release Package build steps + ALL_TARGETS = clean lac_lib_dir qat_direct libosal_user lac_user ++ALL_US_TARGETS = clean lac_lib_dir libosal_user lac_us_user + + + ifdef ICP_SRIOV +@@ -76,6 +77,8 @@ endif + all: $(ALL_TARGETS) + @echo 'Build Done'; + ++all_us: $(ALL_US_TARGETS) ++ @echo 'Build Done'; + + user: lac_lib_dir libosal_user lac_user + +@@ -89,10 +92,8 @@ install_scripts: + # + #userspace common memory library + cmn_user: clean output_dir lac_lib_dir +- @echo ; echo 'Building common mem driver for user space'; +- @cd $(CMN_MEM_PATH) && $(MAKE) ARCH=$(ICP_ARCH_USER) ICP_ENV_DIR=$(ICP_TOP_ENV) OS=linux ICP_OS?=linux_2.6 ICP_OS_LEVEL=user_space CPM_UPSTREAM=1 cm_user;\ + echo ; echo 'Copying Common mem library'; +- cp $(CMN_MEM_PATH)/libusdm_drv_s.so $(CMN_MEM_PATH)/libusdm_drv.a $(ICP_BUILD_OUTPUT)/; ++ cp /lib64/libusdm_drv_s.so /lib64/libusdm_drv.a $(ICP_BUILD_OUTPUT)/; + + #common mem driver ko + cmn_ko: clean output_dir +@@ -117,13 +118,19 @@ qat_direct: clean output_dir lac_lib_dir libosal_user cmn_user + cp $(QAT_DIRECT_ROOT)/src/build/linux_2.6/user_space/libadf.a $(ICP_BUILD_OUTPUT)/; + + +-lac_user: clean output_dir qat_direct libosal_user cmn_user cmn_ko ++lac_user: clean output_dir qat_direct libosal_user cmn_user + @echo ; echo 'Building LAC in user space'; + @cd $(LAC_PATH) && export ICP_ENV_DIR=$(ICP_TOP_ENV) && cd src && $(MAKE) ARCH=$(ICP_ARCH_USER) lib_static ICP_OS_LEVEL=user_space; + cp $(LAC_PATH)/src/build/linux_2.6/user_space/lib$(BASENAME).a $(ICP_BUILD_OUTPUT)/; + @cd $(LAC_PATH) && export ICP_ENV_DIR=$(ICP_TOP_ENV) && cd src && $(MAKE) ARCH=$(ICP_ARCH_USER) lib_shared ICP_OS_LEVEL=user_space; + cp $(LAC_PATH)/src/build/linux_2.6/user_space/lib$(BASENAME)_s.so $(ICP_BUILD_OUTPUT)/; + ++lac_us_user: clean output_dir qat_direct libosal_user cmn_user ++ @echo ; echo 'Building LAC in user space'; ++ @cd $(LAC_PATH) && export ICP_ENV_DIR=$(ICP_TOP_ENV) && cd src && $(MAKE) ARCH=$(ICP_ARCH_USER) lib_static ICP_OS_LEVEL=user_space; ++ cp $(LAC_PATH)/src/build/linux_2.6/user_space/lib$(BASENAME).a $(ICP_BUILD_OUTPUT)/; ++ @cd $(LAC_PATH) && export ICP_ENV_DIR=$(ICP_TOP_ENV) && cd src && $(MAKE) ARCH=$(ICP_ARCH_USER) lib_shared ICP_OS_LEVEL=user_space; ++ cp $(LAC_PATH)/src/build/linux_2.6/user_space/lib$(BASENAME)_s.so $(ICP_BUILD_OUTPUT)/; + + clean: + ifeq ($(ICP_NO_CLEAN),) +@@ -159,12 +166,6 @@ lac_depend: clean + @sort ${ICP_BUILD_OUTPUT}/temp_list.txt | uniq > ${ICP_BUILD_OUTPUT}/kernel_header_file_list.txt;rm ${ICP_BUILD_OUTPUT}/temp_list.txt; + + depend_linux: clean output_dir osal_depend cmn_depend lac_depend +- @echo -e "Building kernel source header file dependency list; Refer ${ICP_BUILD_OUTPUT}/kernel_header_file_list.txt for header files which are used to build other kernel space objects and binaries\n"; +- @for file in $(KERNEL_HEADER_FILE_LIST); do \ +- if( ! test -e "$(strip $(KERNEL_HEADER_FILE_PATH))/$$file"); then \ +- echo "Kernel header file-> $$file is not found"; \ +- fi; \ +- done; + @echo -e "\tQuerying system package files:" + + ifeq ("$(wildcard /lib64/libgcc_s.so.1 /lib/libgcc_s.so.1 /usr/libgcc_s.so.1 /lib64/*/libgcc_s.so.1 /lib/*/libgcc_s.so.1 /usr/*/libgcc_s.so.1)","") +-- +2.39.0 + diff --git a/1005-optimise-qat_service-scripts.patch b/1005-optimise-qat_service-scripts.patch new file mode 100644 index 0000000000000000000000000000000000000000..993a3a8a07261f821723ec1be2d7e54c98c0c561 --- /dev/null +++ b/1005-optimise-qat_service-scripts.patch @@ -0,0 +1,60 @@ +From 96f682aabb551b482b505e587cc3b726cfac14dd Mon Sep 17 00:00:00 2001 +Message-Id: <96f682aabb551b482b505e587cc3b726cfac14dd.1692173679.git.llfl@linux.alibaba.com> +From: "Kun(llfl)" +Date: Wed, 16 Aug 2023 16:14:31 +0800 +Subject: [PATCH 1005/1005] optimise qat_service scripts + +Signed-off-by: Kun(llfl) +--- + .../build_system/build_files/qat_service | 28 +++++++++---------- + 1 file changed, 14 insertions(+), 14 deletions(-) + +diff --git a/quickassist/build_system/build_files/qat_service b/quickassist/build_system/build_files/qat_service +index 2c2e95e..0fc392e 100755 +--- a/quickassist/build_system/build_files/qat_service ++++ b/quickassist/build_system/build_files/qat_service +@@ -59,7 +59,7 @@ LEGACY_LOADED=${LEGACY_LOADED-0} + DO_ENABLE_SRIOV=${DO_ENABLE_SRIOV-0} + + # to protect parallel qat-service run instances +-for pid in $(pidof -x qat_service ); do ++for pid in $(pgrep -x qat_service ); do + if [ $pid != $$ ]; then + echo "[$(date)] : qat_service : Process is already running with PID $pid" + exit 1 +@@ -115,19 +115,19 @@ exit 1 + ADF_CTL=/usr/sbin/adf_ctl + + # store the total number of each type of device +-numDh895xDevicesPF=$(lspci -n | egrep -c "$INTEL_VENDORID:$DH895_DEVICE_PCI_ID") +-numDh895xDevicesVF=$(lspci -n | egrep -c "$INTEL_VENDORID:$DH895_DEVICE_PCI_ID_VM") +-numC62xDevicesPF=$(lspci -n | egrep -c "$INTEL_VENDORID:$C62X_DEVICE_PCI_ID") +-numC62xDevicesVF=$(lspci -n | egrep -c "$INTEL_VENDORID:$C62X_DEVICE_PCI_ID_VM") +-numC3xxDevicesPF=$(lspci -n | egrep -c "$INTEL_VENDORID:$C3XX_DEVICE_PCI_ID") +-numC3xxDevicesVF=$(lspci -n | egrep -c "$INTEL_VENDORID:$C3XX_DEVICE_PCI_ID_VM") +-numD15xxDevicesPF=$(lspci -n | egrep -c "$INTEL_VENDORID:$D15XX_DEVICE_PCI_ID") +-numD15xxDevicesVF=$(lspci -n | egrep -c "$INTEL_VENDORID:$D15XX_DEVICE_PCI_ID_VM") +-numC4xxDevicesPF=$(lspci -n | egrep -c "$INTEL_VENDORID:$C4XX_DEVICE_PCI_ID") +-numC4xxDevicesVF=$(lspci -n | egrep -c "$INTEL_VENDORID:$C4XX_DEVICE_PCI_ID_VM") +-num4xxxDevicesPF=$(lspci -n | egrep -c "$INTEL_VENDORID:($QAT_4XXX_DEVICE_PCI_ID|$QAT_401XX_DEVICE_PCI_ID)") +-num4xxxDevicesVF=$(lspci -n | egrep -c "$INTEL_VENDORID:($QAT_4XXX_DEVICE_PCI_ID_VM|$QAT_401XX_DEVICE_PCI_ID_VM)") +-numVQATDevices=$(lspci -n | egrep -c "$INTEL_VENDORID:$VQAT_DEVICE_PCI_ID") ++numDh895xDevicesPF=$(lspci -n | grep -E -c "$INTEL_VENDORID:$DH895_DEVICE_PCI_ID") ++numDh895xDevicesVF=$(lspci -n | grep -E -c "$INTEL_VENDORID:$DH895_DEVICE_PCI_ID_VM") ++numC62xDevicesPF=$(lspci -n | grep -E -c "$INTEL_VENDORID:$C62X_DEVICE_PCI_ID") ++numC62xDevicesVF=$(lspci -n | grep -E -c "$INTEL_VENDORID:$C62X_DEVICE_PCI_ID_VM") ++numC3xxDevicesPF=$(lspci -n | grep -E -c "$INTEL_VENDORID:$C3XX_DEVICE_PCI_ID") ++numC3xxDevicesVF=$(lspci -n | grep -E -c "$INTEL_VENDORID:$C3XX_DEVICE_PCI_ID_VM") ++numD15xxDevicesPF=$(lspci -n | grep -E -c "$INTEL_VENDORID:$D15XX_DEVICE_PCI_ID") ++numD15xxDevicesVF=$(lspci -n | grep -E -c "$INTEL_VENDORID:$D15XX_DEVICE_PCI_ID_VM") ++numC4xxDevicesPF=$(lspci -n | grep -E -c "$INTEL_VENDORID:$C4XX_DEVICE_PCI_ID") ++numC4xxDevicesVF=$(lspci -n | grep -E -c "$INTEL_VENDORID:$C4XX_DEVICE_PCI_ID_VM") ++num4xxxDevicesPF=$(lspci -n | grep -E -c "$INTEL_VENDORID:($QAT_4XXX_DEVICE_PCI_ID|$QAT_401XX_DEVICE_PCI_ID)") ++num4xxxDevicesVF=$(lspci -n | grep -E -c "$INTEL_VENDORID:($QAT_4XXX_DEVICE_PCI_ID_VM|$QAT_401XX_DEVICE_PCI_ID_VM)") ++numVQATDevices=$(lspci -n | grep -E -c "$INTEL_VENDORID:$VQAT_DEVICE_PCI_ID") + + disable_sriov() { + PF_LIST=`$ADF_CTL $1 status | grep -e "^ *qat_dev" | grep -v "vf," | grep -v "vqat-adi," | awk '{print $1}'` +-- +2.39.0 + diff --git a/1006-replace-usdm-with-udma.patch b/1006-replace-usdm-with-udma.patch new file mode 100644 index 0000000000000000000000000000000000000000..264723636bf4390f919422d520971dbcf6bcc12f --- /dev/null +++ b/1006-replace-usdm-with-udma.patch @@ -0,0 +1,72 @@ +From f08c73e40e6b7a923ee28fe3e5d8050f205d2244 Mon Sep 17 00:00:00 2001 +From: Guanjun +Date: Wed, 13 Sep 2023 15:17:59 +0800 +Subject: [PATCH 1/1] replace usdm with udma + +Signed-off-by: Guanjun +--- + Makefile.in | 1 - + quickassist/Makefile | 3 +-- + quickassist/lookaside/access_layer/src/Makefile | 2 +- + quickassist/utilities/apps/Makefile | 1 - + 4 files changed, 2 insertions(+), 5 deletions(-) + +diff --git a/Makefile.in b/Makefile.in +index 90a0b0f..10d5644 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -1822,7 +1822,6 @@ qat-service-us-all: + + adf-rl-all: quickassist-all + @$(MAKE) -C $(ADF_RL_DIR) +- @$(INSTALL) -D -m 750 $(ADF_RL_DIR)/sla_mgr/build/linux_2.6/user_space/sla_mgr $(ICP_BUILD_OUTPUT)/$(ADF_RL_SLA_MGR_BIN) + + ########################### + # ADF_CTL related targets # +diff --git a/quickassist/Makefile b/quickassist/Makefile +index f1c2c43..85be099 100755 +--- a/quickassist/Makefile ++++ b/quickassist/Makefile +@@ -93,13 +93,12 @@ install_scripts: + #userspace common memory library + cmn_user: clean output_dir lac_lib_dir + echo ; echo 'Copying Common mem library'; +- cp /lib64/libusdm_drv_s.so /lib64/libusdm_drv.a $(ICP_BUILD_OUTPUT)/; ++ cp /lib64/libudma.so* $(ICP_BUILD_OUTPUT)/; + + #common mem driver ko + cmn_ko: clean output_dir + @echo ; echo 'Building usdm_drv.ko'; + @cd $(CMN_MEM_PATH) && $(MAKE) ICP_ENV_DIR=$(ICP_TOP_ENV) OS=linux ICP_OS?=linux_2.6 ICP_OS_LEVEL=kernel_space ICP_QDM_IOMMU=1 CPM_UPSTREAM=1 cm_kernel +- @cp $(CMN_MEM_PATH)/usdm_drv.ko $(ICP_BUILD_OUTPUT) + + + #userspace osal library +diff --git a/quickassist/lookaside/access_layer/src/Makefile b/quickassist/lookaside/access_layer/src/Makefile +index 2b9b8be..c4ab694 100755 +--- a/quickassist/lookaside/access_layer/src/Makefile ++++ b/quickassist/lookaside/access_layer/src/Makefile +@@ -104,7 +104,7 @@ ifeq ($(ICP_OS_LEVEL), user_space) + ADDITIONAL_KERNEL_LIBS += user/user.a + endif + +-ADDITIONAL_LIBS+=$(ICP_BUILD_OUTPUT)/libusdm_drv_s.so ++ADDITIONAL_LIBS+=$(ICP_BUILD_OUTPUT)/libudma.so + + ###########End of Define the output section####################### + SUBDIRS=$(patsubst %/$(ICP_BUILD_OUTPUT_DIR)/,%,$(dir $(ADDITIONAL_KERNEL_LIBS))) +diff --git a/quickassist/utilities/apps/Makefile b/quickassist/utilities/apps/Makefile +index 288e964..bec28ce 100644 +--- a/quickassist/utilities/apps/Makefile ++++ b/quickassist/utilities/apps/Makefile +@@ -63,7 +63,6 @@ all: sla_mgr_build + + sla_mgr_build: + @echo "=== Building sla manager application ===" +- $(MAKE) -C sla_mgr/ + + clean: + $(MAKE) -C sla_mgr/ clean +-- +2.39.3 + diff --git a/1007-Fix-uio-scan-logic.patch b/1007-Fix-uio-scan-logic.patch new file mode 100644 index 0000000000000000000000000000000000000000..053638cf7a4ffa6a33d69c4d0a1a91529f80a4ae --- /dev/null +++ b/1007-Fix-uio-scan-logic.patch @@ -0,0 +1,137 @@ +From ae92b3af814ab918c7d591c687217f8c4d3a80b0 Mon Sep 17 00:00:00 2001 +From: Xingrui Yi +Date: Fri, 18 Aug 2023 15:59:17 +0800 +Subject: [PATCH] Fix uio scan logic + +add logic to scan uio in /dev + +Signed-off-by: Xingrui Yi +--- + .../src/qat_direct/src/adf_process_proxy.c | 7 +++++- + .../src/qat_direct/src/uio_user.h | 1 + + .../src/qat_direct/src/uio_user_device.c | 22 +++++++++++++++++++ + .../src/qat_direct/src/uio_user_utils.c | 22 +++++++++++++++++++ + .../crypto/qat/qat_common/adf_cfg_common.h | 7 ++++++ + 5 files changed, 58 insertions(+), 1 deletion(-) + +diff --git a/quickassist/lookaside/access_layer/src/qat_direct/src/adf_process_proxy.c b/quickassist/lookaside/access_layer/src/qat_direct/src/adf_process_proxy.c +index 941470a..ae9907f 100644 +--- a/quickassist/lookaside/access_layer/src/qat_direct/src/adf_process_proxy.c ++++ b/quickassist/lookaside/access_layer/src/qat_direct/src/adf_process_proxy.c +@@ -411,7 +411,12 @@ CpaStatus icp_adf_userProcessToStart(char const *const name_tml, char *name) + ADF_ERROR("Mutex unlock error\n"); + return CPA_STATUS_FAIL; + } +- res = write(process_info_file, name_tml, name_len); ++ ++ struct adf_dev_tableList *tbl_list = adf_getTableList(); ++ tbl_list->name_len = name_len; ++ strcpy(tbl_list->name, name_tml); ++ ++ res = write(process_info_file, tbl_list, sizeof(struct adf_dev_tableList)); + if (res < 0) + { + close(process_info_file); +diff --git a/quickassist/lookaside/access_layer/src/qat_direct/src/uio_user.h b/quickassist/lookaside/access_layer/src/qat_direct/src/uio_user.h +index 8caf6a7..49f17ad 100644 +--- a/quickassist/lookaside/access_layer/src/qat_direct/src/uio_user.h ++++ b/quickassist/lookaside/access_layer/src/qat_direct/src/uio_user.h +@@ -46,5 +46,6 @@ int32_t adf_init_devices(void); + CpaStatus adf_proxy_get_devices(void); + int32_t adf_cleanup_devices(void); + int adf_proxy_poll_event(Cpa32U *dev_id, enum adf_event *event); ++struct adf_dev_tableList *adf_getTableList(void); + + #endif /* end of include guard: UIO_USER_H */ +diff --git a/quickassist/lookaside/access_layer/src/qat_direct/src/uio_user_device.c b/quickassist/lookaside/access_layer/src/qat_direct/src/uio_user_device.c +index 2919910..a400ff0 100755 +--- a/quickassist/lookaside/access_layer/src/qat_direct/src/uio_user_device.c ++++ b/quickassist/lookaside/access_layer/src/qat_direct/src/uio_user_device.c +@@ -839,3 +839,25 @@ CpaStatus adf_devmgrGetAccelHead(icp_accel_dev_t **pAccelDev) + *pAccelDev = (icp_accel_dev_t *)accel_tbl; + return CPA_STATUS_SUCCESS; + } ++ ++/* ++ * adf_get_tbl ++ * Returns accel table list for qat_dev_process write ++ */ ++struct adf_dev_tableList *adf_getTableList() ++{ ++ int index = 0; ++ struct adf_dev_tableList *tbl_list = malloc(sizeof(struct adf_dev_tableList)); ++ tbl_list->num_instance = 0; ++ ++ for (int i = 0; i < ADF_MAX_DEVICES; i++) ++ { ++ if (uio_acces_dev_exist(i, NULL)) ++ { ++ tbl_list->table[index] = i; ++ index++; ++ tbl_list->num_instance++; ++ } ++ } ++ return tbl_list; ++} +\ No newline at end of file +diff --git a/quickassist/lookaside/access_layer/src/qat_direct/src/uio_user_utils.c b/quickassist/lookaside/access_layer/src/qat_direct/src/uio_user_utils.c +index 4237457..43e140d 100644 +--- a/quickassist/lookaside/access_layer/src/qat_direct/src/uio_user_utils.c ++++ b/quickassist/lookaside/access_layer/src/qat_direct/src/uio_user_utils.c +@@ -41,6 +41,7 @@ + #include + #include + #include ++#include + + #include "cpa.h" + #include "uio_user_utils.h" +@@ -95,6 +96,27 @@ CpaStatus uio_udev_get_device_from_devid(int devid, struct udev_device **dev) + + if (accelId) + { ++ DIR *dir; ++ struct dirent *entry; ++ char dir_path[100]; ++ strcpy(dir_path, udev_device_get_syspath(*dev)); ++ strcat(dir_path, "/uio"); ++ dir = opendir(dir_path); ++ ++ while ((entry = readdir(dir)) != NULL) { ++ if (strcmp(entry->d_name, ".") != 0 && strcmp(entry->d_name, "..") != 0) { ++ char file_path[100] = "/dev/"; ++ strcat(file_path, entry->d_name); ++ ++ if (access(file_path, F_OK) == -1) { ++ ADF_DEBUG("uio dev %s not found\n", file_path); ++ udev_device_unref(*dev); ++ *dev = NULL; ++ udev_unref(udev); ++ return CPA_STATUS_FAIL; ++ } ++ } ++ } + return CPA_STATUS_SUCCESS; + } + else +diff --git a/quickassist/qat/drivers/crypto/qat/qat_common/adf_cfg_common.h b/quickassist/qat/drivers/crypto/qat/qat_common/adf_cfg_common.h +index 1d50fdf..e8f9c29 100644 +--- a/quickassist/qat/drivers/crypto/qat/qat_common/adf_cfg_common.h ++++ b/quickassist/qat/drivers/crypto/qat/qat_common/adf_cfg_common.h +@@ -143,6 +143,13 @@ struct adf_dev_miscellaneous_stats { + u64 misc_counter; + }; + ++struct adf_dev_tableList { ++ u32 table[ADF_MAX_DEVICES]; ++ u16 num_instance; ++ char name[ADF_CFG_MAX_SECTION_LEN_IN_BYTES]; ++ size_t name_len; ++}; ++ + #ifdef QAT_ERR_INJECTION_SIM + struct adf_pmisc_write_info { + u32 accel_id; +-- +2.31.1 + diff --git a/intel-QAT20-L.0.9.4-00004.tar.gz b/intel-QAT20-L.0.9.4-00004.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..c5cfde7515a54a4da8ed6568441fef072d89b1a3 Binary files /dev/null and b/intel-QAT20-L.0.9.4-00004.tar.gz differ diff --git a/intel-QAT20.spec b/intel-QAT20.spec new file mode 100644 index 0000000000000000000000000000000000000000..248784f0fd3237b8db6ff7f29e1fb42322f9b0ab --- /dev/null +++ b/intel-QAT20.spec @@ -0,0 +1,297 @@ +%define anolis_release 12 +%define debug_package %{nil} +%define QAT_release 00004 + +Summary: QAT package(Library and sample application) +Name: intel-QAT20 +Version: L.0.9.4 +Release: %{QAT_release}.%{anolis_release}%{dist} +Group: QAT/Base +License: BSD and (BSD or GPLv2) +Source: %{name}-%{version}-%{QAT_release}.tar.gz +Patch1000: 1000-bugfix-support-5.10.patch +Patch1001: 1001-bugfix-split-qat-vdcm-module.patch +Patch1002: 1002-bugfix-crash-of-rmmod-vdcm.patch +Patch1003: 1003-src-fix-warning-when-compiling.patch +Patch1004: 1004-build-split-kernel-space-and-user-space-building.patch +Patch1005: 1005-optimise-qat_service-scripts.patch +Patch1006: 1006-replace-usdm-with-udma.patch +Patch1007: 1007-Fix-uio-scan-logic.patch + +BuildRequires: gcc gcc-c++ make systemd-devel openssl-devel zlib-devel yasm +BuildRequires: udma-devel +BuildRequires: libudev-devel >= 1.47 +BuildRequires: boost-devel + +Requires(post): %{_sbindir}/depmod +Requires(post): pciutils +Requires(post): procps-ng + +ExclusiveArch: x86_64 + +%description +Intel(R) QuickAssist Technology user space library and sample application Linux +version %{version} + +%package devel +Summary: Headers and libraries to build applications that use qatlib/OOT +Requires: %{name} = %{version}-%{release} + +%description devel +This package contains headers and libraries required to build applications +that use the Intel QuickAssist APIs. + +%prep +%autosetup -c %{name}-%{version} -p1 + +%build +unset ICP_ROOT ICP_ARCH_USER ICP_BUILDSYSTEM_PATH ICP_BUILD_OUTPUT ICP_ENV_DIR ICP_TOOLS_TARGET +%configure + +# make only work in single thread +make all-us + +%pre +groupadd -f qat + +%install +rm -rf %{buildroot} +mkdir -p %{buildroot}/etc/init.d +mkdir -p %{buildroot}/etc/udev/rules.d +mkdir -p %{buildroot}/%{_libdir} +mkdir -p %{buildroot}%{_sbindir} +mkdir -p %{buildroot}/usr/bin/QAT +mkdir -p %{buildroot}/usr/bin/QAT/build +mkdir -p %{buildroot}/lib/firmware +MODPATH=drivers/crypto/qat +SRCMODDIR=${RPM_BUILD_DIR}/%{name}-%{version}/quickassist/qat/${MODPATH} + +/usr/bin/install -D -m 750 quickassist/build_system/build_files/qat_service %{buildroot}/etc/init.d +/usr/bin/install -D -m 664 quickassist/build_system/build_files/qat.service %{buildroot}/usr/bin/QAT/build +/usr/bin/install -D -m 750 build/adf_ctl %{buildroot}%{_sbindir} +/usr/bin/install -D -m 750 build/vqat_ctl %{buildroot}%{_sbindir} +/usr/bin/install -D -m 755 build/libqat_s.so %{buildroot}/%{_libdir} + +/usr/bin/install -D -m 666 build/4xxx_template.conf %{buildroot}/usr/bin/QAT/build +/usr/bin/install -D -m 666 build/4xxxvf_dev0.conf.vm %{buildroot}/usr/bin/QAT/build +/usr/bin/install -D -m 666 build/vqat-adi_dev0.conf.sym %{buildroot}/usr/bin/QAT/build +/usr/bin/install -D -m 666 build/vqat-adi_dev0.conf.asym %{buildroot}/usr/bin/QAT/build +/usr/bin/install -D -m 666 build/vqat-adi_dev0.conf.dc %{buildroot}/usr/bin/QAT/build +/usr/bin/install -D -m 755 config_vqat.sh %{buildroot}/usr/bin/QAT/ +/usr/bin/install -D -m 755 generate_conf_files.sh %{buildroot}/usr/bin/QAT/ + +%{_bindir}/mv %{buildroot}/%{_libdir}/libqat_s.so %{buildroot}/%{_libdir}/libqat_s.so.%{version} +%{_bindir}/ln -sf %{_libdir}/libqat_s.so.%{version} %{buildroot}/%{_libdir}/libqat_s.so +%{_bindir}/ln -sf %{_libdir}/libqat_s.so.%{version} %{buildroot}/%{_libdir}/libqat_s.so.0 + +mkdir -p %{buildroot}/%{_includedir}/qat +%{_bindir}/find quickassist -name "*.h" | xargs tar cvf %{buildroot}/qat-headers.tgz +%{__tar} -xf %{buildroot}/qat-headers.tgz -C %{buildroot}/%{_includedir}/qat +%{__rm} -f %{buildroot}/qat-headers.tgz +mkdir -p %{buildroot}/%{_includedir}/qat/quickassist/lookaside/access_layer/src/common/crypto/kpt/crypto +/usr/bin/install -D -m 666 quickassist/lookaside/access_layer/src/common/crypto/kpt/crypto/lac_kpt_crypto_qat_comms.c %{buildroot}/%{_includedir}/qat/quickassist/lookaside/access_layer/src/common/crypto/kpt/crypto/lac_kpt_crypto_qat_comms.c + +%clean +rm -rf $RPM_BUILD_ROOT + +%verifyscript + +%files +%license LICENSE.BSD +/etc/init.d/qat_service +%{_sbindir}/adf_ctl +%{_sbindir}/vqat_ctl +/usr/bin/QAT/ +%{_libdir}/libqat_s.so.0 +%{_libdir}/libqat_s.so.%{version} + +%files devel +%license LICENSE.BSD +%{_includedir}/qat +%{_libdir}/libqat_s.so + +%post +MV=/usr/bin/mv +ECHO=/usr/bin/echo +CP=/usr/bin/cp +SLEEP=/usr/bin/sleep +INSTALL=/usr/bin/install +ICP_ROOT=/usr/bin/QAT/ +QAT_SERVICE_PATH=/etc/init.d/ +HUGE_PAGE_DIR=/dev/hugepages/qat +SYSTEMD_SYSTEM_UNIT_DIR=`pkg-config --variable=systemdsystemunitdir systemd` +SYSTEMD_UNIT_FILE_PATH=${ICP_ROOT}/build +SYSTEMD_UNIT_FILE=qat.service +INTEL_VENDORID="8086" +QAT_4XXX_DEVICE_NUMBER="4940" +QAT_4XXX_DEVICE_NUMBER_VM="4941" +QAT_401XX_DEVICE_NUMBER="4942" +QAT_401XX_DEVICE_NUMBER_VM="4943" +VQAT_DEVICE_NUMBER="0da5" +QAT_4XXX_NUM_VFS=16 +DEVICES="${QAT_4XXX_DEVICE_NUMBER} ${QAT_4XXX_DEVICE_NUMBER_VM} ${QAT_401XX_DEVICE_NUMBER} ${QAT_401XX_DEVICE_NUMBER_VM} ${VQAT_DEVICE_NUMBER}" +num4xxxDevicesP=`lspci -n | grep -E -c "${INTEL_VENDORID}:${QAT_4XXX_DEVICE_NUMBER}"` +num4xxxDevicesV=`lspci -n | grep -E -c "${INTEL_VENDORID}:${QAT_4XXX_DEVICE_NUMBER_VM}"` +num401xxDevicesP=`lspci -n | egrep -c "${INTEL_VENDORID}:${QAT_401XX_DEVICE_NUMBER}"` +num401xxDevicesV=`lspci -n | egrep -c "${INTEL_VENDORID}:${QAT_401XX_DEVICE_NUMBER_VM}"` +numVQATDevices=`lspci -n | grep -E -c "${INTEL_VENDORID}:${VQAT_DEVICE_NUMBER}"` + +if [ -e ${QAT_SERVICE_PATH}/qat_service -a -e "/dev/qat_adf_ctl" ]; then + until ${QAT_SERVICE_PATH}/qat_service shutdown + do + ${SLEEP} 1 + done +fi +groupadd -f qat +if [ ! -d /etc/qat_conf_backup ]; then + mkdir /etc/qat_conf_backup +fi +${MV} /etc/4xxx*.conf /etc/qat_conf_backup/ 2>/dev/null +${MV} /etc/4xxxvf*.conf /etc/qat_conf_backup/ 2>/dev/null +${MV} /etc/vqat*.conf /etc/qat_conf_backup/ 2>/dev/null + +if [ "${num4xxxDevicesP}" -gt "0" ];then + ${ICP_ROOT}/generate_conf_files.sh -n ${num4xxxDevicesP} -f ${ICP_ROOT}/build/4xxx_template.conf -o /etc/ + if [ -e "/etc/default/qat" ];then + . /etc/default/qat + if [ -n "${SRIOV_ENABLE}" ];then + if [ "${SRIOV_ENABLE}" -eq "1" ]; then + num4xxxDevicesV=$((${QAT_4XXX_NUM_VFS} * ${num4xxxDevicesP})) + fi + fi + else + echo "#Remove comment on next line to enable sriov" > /etc/default/qat + echo "#SRIOV_ENABLE=1" >> /etc/default/qat + fi +fi + +if [ "${num4xxxDevicesV}" -gt "0" ];then + for (( dev=0; dev<${num4xxxDevicesV}; dev++ ));do + ${INSTALL} -D -m 640 ${ICP_ROOT}/build/4xxxvf_dev0.conf.vm /etc/4xxxvf_dev${dev}.conf + done + echo "SRIOV_ENABLE=1" > /etc/default/qat +fi + +if [ "${num401xxDevicesP}" -gt "0" ];then + ${ICP_ROOT}/generate_conf_files.sh -n ${num401xxDevicesP} -f ${ICP_ROOT}/build/4xxx_template.conf -o /etc/ + if [ -e "/etc/default/qat" ];then + . /etc/default/qat + if [ -n "${SRIOV_ENABLE}" ];then + if [ "${SRIOV_ENABLE}" -eq "1" ]; then + num401xxDevicesV=$((${QAT_4XXX_NUM_VFS} * ${num401xxDevicesP})) + fi + fi + else + echo "#Remove comment on next line to enable sriov" > /etc/default/qat + echo "#SRIOV_ENABLE=1" >> /etc/default/qat + fi +fi + +if [ "${num401xxDevicesV}" -gt "0" ];then + for (( dev=0; dev<${num401xxDevicesV}; dev++ ));do + ${INSTALL} -D -m 640 ${ICP_ROOT}/build/4xxxvf_dev0.conf.vm /etc/4xxxvf_dev${dev}.conf + done + echo "SRIOV_ENABLE=1" > /etc/default/qat +fi + +if [ "${numVQATDevices}" -gt "0" ];then + ${ICP_ROOT}/config_vqat.sh + echo "SRIOV_ENABLE=1" > /etc/default/qat +fi +mkdir -p /etc/udev/rules.d +echo 'KERNEL=="qat_adf_ctl" MODE="0660" GROUP="qat"' > /etc/udev/rules.d/00-qat.rules +echo 'KERNEL=="qat_dev_processes" MODE="0660" GROUP="qat"' >> /etc/udev/rules.d/00-qat.rules +echo 'KERNEL=="usdm_drv" MODE="0660" GROUP="qat"' >> /etc/udev/rules.d/00-qat.rules +echo 'ACTION=="add", DEVPATH=="/module/usdm_drv" SUBSYSTEM=="module" RUN+="/bin/mkdir' ${HUGE_PAGE_DIR}\" >> /etc/udev/rules.d/00-qat.rules +echo 'ACTION=="add", DEVPATH=="/module/usdm_drv" SUBSYSTEM=="module" RUN+="/bin/chgrp qat' ${HUGE_PAGE_DIR}\" >> /etc/udev/rules.d/00-qat.rules +echo 'ACTION=="add", DEVPATH=="/module/usdm_drv" SUBSYSTEM=="module" RUN+="/bin/chmod 0770' ${HUGE_PAGE_DIR}\" >> /etc/udev/rules.d/00-qat.rules +echo 'ACTION=="remove", DEVPATH=="/module/usdm_drv" SUBSYSTEM=="module" RUN+="/bin/rmdir' ${HUGE_PAGE_DIR}\" >> /etc/udev/rules.d/00-qat.rules +for dev in $DEVICES; do + echo 'KERNEL=="uio*", ATTRS{vendor}=="0x'`echo ${INTEL_VENDORID} | tr -d \"`'", ATTRS{device}=="0x'`echo ${dev} | tr -d \"`'" MODE="0660" GROUP="qat"' >> /etc/udev/rules.d/00-qat.rules +done + +if [ $(echo `uname -r` | grep -i tinyos) ]; then + if [ -e ${QAT_SERVICE_PATH}/qat_service ]; then + ${ECHO} "Disable QAT service" + systemctl disable qat + systemctl daemon-reload + fi +else + if [ -e /usr/bin/systemctl ]; then + if [ "${SYSTEMD_SYSTEM_UNIT_DIR}" == "" ]; then + ${ECHO} "Could not find path to place systemd unit file. Using /usr/lib/systemd/system by default" + fi + ${CP} -f ${SYSTEMD_UNIT_FILE_PATH}/${SYSTEMD_UNIT_FILE} ${SYSTEMD_SYSTEM_UNIT_DIR} + systemctl enable qat + systemctl daemon-reload + elif [ -e /sbin/chkconfig ] ; then + chkconfig --add qat_service; + elif [ -e %{_sbindir}/update-rc.d ]; then + update-rc.d qat_service defaults + fi + + ${ECHO} "Starting QAT service" + /etc/init.d/qat_service start +fi + +%preun +QAT_SERVICE_PATH=/etc/init.d/ +ECHO=/usr/bin/echo +RM=/usr/bin/rm +${ECHO} "Stopping QAT service" +if [ -e ${QAT_SERVICE_PATH}/qat_service ]; then + until ${QAT_SERVICE_PATH}/qat_service shutdown + do + sleep 1 + done + if [ -e /usr/bin/systemctl ]; then + systemctl stop qat + systemctl disable qat + systemctl daemon-reload + elif [ -e /sbin/chkconfig ]; then \ + chkconfig --del qat_service; \ + elif [ -e %{_sbindir}/update-rc.d ]; then \ + update-rc.d -f qat_service remove; \ + fi +fi +${RM} -rf /etc/udev/rules.d/00-qat.rules /etc/default/qat + +%changelog +* Thu Dec 14 2023 Xingrui Yi - 0.9.4-00004.12 +- Change qat_4xxx fw file path + +* Thu Sep 14 2023 Xuchun Shang - 0.9.4-00004.11 +- Add support for high-freq machine + +* Thu Aug 10 2023 Kun(llfl) - 0.9.4-00004.10 +- Split build for user space only +- Update devel pkg + +* Tue Nov 29 2022 Xuchun Shang - 0.9.4-00004.9 +- Fix compiler warning + +* Tue Nov 15 2022 Xuchun Shang - 0.9.4-00004.8 +- Remove QAT driver + +* Wed Nov 09 2022 Hao Xiang - 0.9.4-00004.7 +- Get current kernel version by executing uname + +* Tue Oct 25 2022 Xuchun Shang - 0.9.4-00004.6 +- Fix kernel crash when rmmod qat_vdcm + +* Fri Oct 21 2022 Xuchun Shang - 0.9.4-00004.5 +- Stop QAT service in tinyos by default + +* Tue Oct 18 2022 Xuchun Shang - 0.9.4-00004.4 +- Fix bug in dc_sample_event_notif which leads to kernel crash + +* Thu Oct 13 2022 Hao Xiang - 0.9.4-00004.3 +- Split qat_vdcm module with qat_4xxx module + +* Mon Sep 30 2022 Xin Zeng - 0.9.4-00004.2 +- Split kernel driver and library into separate packages + +* Tue Aug 30 2022 Xin Zeng - 0.9.4-00004.1 +- Initial version of the package + +