Update to qatlib 22.07

Signed-off-by: Giovanni Cabiddu <giovanni.cabiddu@intel.com>
This commit is contained in:
Giovanni Cabiddu 2022-07-22 08:40:52 -04:00
parent f0337a9db8
commit cd9a2fd3a8
8 changed files with 33 additions and 244 deletions

2
.gitignore vendored
View File

@ -1 +1 @@
/qatlib-21.11.0.tar.gz /qatlib-22.07.0.tar.gz

View File

@ -1,39 +0,0 @@
From 34de92337923a15ed46b064f53dc520d2a46a12c Mon Sep 17 00:00:00 2001
From: Fiona Trahe <fiona.trahe@intel.com>
Date: Thu, 24 Feb 2022 05:34:37 -0500
Subject: [PATCH 1/3] Fix INSTALL doc guidance for kernel to use for
compression
Previously specified 5.16+, actually at least 5.17 is needed.
Signed-off-by: Fiona Trahe <fiona.trahe@intel.com>
Signed-off-by: Vladis Dronov <vdronov@redhat.com>
---
INSTALL | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/INSTALL b/INSTALL
index b76d88c..1f8c3f5 100644
--- a/INSTALL
+++ b/INSTALL
@@ -76,7 +76,7 @@ Check System Prerequisites
intel_qat
qat_4xxx
They should load by default if using any of the following:
- * Linux kernel v5.11+ (This is for crypto, for compression use v5.16+)
+ * Linux kernel v5.11+ (This is for crypto, for compression use v5.17+)
* Fedora 34+ (for compression use 36+)
* RHEL 8.4+ (for compression use 9.0+)
* BIOS settings
@@ -438,7 +438,7 @@ Common issues
Issue: "DC Instances are not present" error when trying to run
compression operations, e.g. using "cpa_sample_code runTests=32"
- Likely cause: QAT driver in Linux kernel before v5.16 doesn't support
+ Likely cause: QAT driver in Linux kernel before v5.17 doesn't support
compression service. Upgrade to a later kernel.
Issue: "Could not open corpus file: /usr/local/share/qat/calgary"
--
2.35.1

View File

@ -1,45 +0,0 @@
From 6b79a27e130f3be0fc2603637fa8923bf384f2e1 Mon Sep 17 00:00:00 2001
From: Fiona Trahe <fiona.trahe@intel.com>
Date: Thu, 24 Feb 2022 11:26:59 -0500
Subject: [PATCH 2/3] Update INSTALL doc with firmware load issue
Update INSTALL doc with info about failed firmware load
issue and likely cause.
Signed-off-by: Fiona Trahe <fiona.trahe@intel.com>
Signed-off-by: Vladis Dronov <vdronov@redhat.com>
---
INSTALL | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/INSTALL b/INSTALL
index 1f8c3f5..9ab5d98 100644
--- a/INSTALL
+++ b/INSTALL
@@ -455,6 +455,23 @@ Common issues
After updating re-login so the changes take effect:
sudo su -l $USER
+ Issue: error on make install
+ "Job for qat.service failed because the control process exited with
+ error code"
+ System logs (dmesg) show QAT kernel module failed with error like:
+ "4xxx 0000:6b:00.0: enabling device (0140 -> 0142)
+ QAT: authentication error (FCU_STATUS = 0x3),retry = 0
+ 4xxx 0000:6b:00.0: Failed to load MMP
+ 4xxx 0000:6b:00.0: Failed to load acceleration FW
+ 4xxx 0000:6b:00.0: Resetting device qat_dev0
+ 4xxx: probe of 0000:6b:00.0 failed with error -14"
+ Likely cause: firmware files not present in initramfs on module loading
+ early in boot process.
+ Fix: First make sure you have the firmware installed in /lib/firmware,
+ see pre-requisites section above. Then workaround with
+ "sudo rmmod qat_4xxx; sudo modprobe qat_4xxx; sudo systemctl start qat"
+ or fix for future reboots with "dracut --force" followed by a reboot.
+
===============================================================================
--
2.35.1

View File

@ -1,32 +0,0 @@
From 9ab0ce1230bd500fa1abd21e72b289e034b30be4 Mon Sep 17 00:00:00 2001
From: Patrick Patricelli <patrick.patricelli@intel.com>
Date: Thu, 24 Feb 2022 13:59:46 -0500
Subject: [PATCH 3/3] Update README.md
Update README.md to point to INSTALL file for details about the kernel
versions supported.
Signed-off-by: Patrick Patricelli <patrick.patricelli@intel.com>
Signed-off-by: Vladis Dronov <vdronov@redhat.com>
---
README.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/README.md b/README.md
index be9b19b..5b1505b 100644
--- a/README.md
+++ b/README.md
@@ -108,8 +108,8 @@ The following assumptions are made concerning the deployment environment:
memory regions.
* A QuickAssist kernel driver for the supported device is installed, which has
discovered and initialised the device, exposing the VFs. This driver is
- included in the Linux kernel from v5.11 though v5.16 and is necessary for
- compression services.
+ included in the Linux kernel, see [INSTALL](INSTALL) for information about which kernel
+ to use.
* The library can be used by unprivileged users if that user is included in
the 'qat' group.
--
2.35.1

View File

@ -1,44 +0,0 @@
From d9540ad27d5b53ff1ea9f728c47e4acf1480ec49 Mon Sep 17 00:00:00 2001
From: Vladis Dronov <vdronov@redhat.com>
Date: Tue, 22 Mar 2022 16:56:29 +0100
Subject: [PATCH] Fix hash_file_sample return code
So it does not return zero exit status unconditionally.
Signed-off-by: Vladis Dronov <vdronov@redhat.com>
---
.../sym/hash_file_sample/cpa_hash_file_sample_user.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/quickassist/lookaside/access_layer/src/sample_code/functional/sym/hash_file_sample/cpa_hash_file_sample_user.c b/quickassist/lookaside/access_layer/src/sample_code/functional/sym/hash_file_sample/cpa_hash_file_sample_user.c
index c9a8c5e..758d7bd 100644
--- a/quickassist/lookaside/access_layer/src/sample_code/functional/sym/hash_file_sample/cpa_hash_file_sample_user.c
+++ b/quickassist/lookaside/access_layer/src/sample_code/functional/sym/hash_file_sample/cpa_hash_file_sample_user.c
@@ -92,7 +92,7 @@ int main(int argc, const char **argv)
if (CPA_STATUS_SUCCESS != stat)
{
PRINT_ERR("Failed to initialize memory driver\n");
- return 0;
+ return (int)stat;
}
stat = icp_sal_userStartMultiProcess("SSL", CPA_FALSE);
@@ -100,7 +100,7 @@ int main(int argc, const char **argv)
{
PRINT_ERR("Failed to start user process SSL\n");
qaeMemDestroy();
- return 0;
+ return (int)stat;
}
gFileName = fileToHash;
@@ -118,5 +118,5 @@ int main(int argc, const char **argv)
qaeMemDestroy();
gFileName = NULL;
- return 0;
+ return (int)stat;
}
--
2.35.1

View File

@ -1,62 +0,0 @@
From e94a964a9c167e917496e63b5e379c327dd9b93f Mon Sep 17 00:00:00 2001
From: Vladis Dronov <vdronov@redhat.com>
Date: Tue, 22 Mar 2022 17:24:27 +0100
Subject: [PATCH] Make hash_file_sample to hash its own binary
Signed-off-by: Vladis Dronov <vdronov@redhat.com>
---
.../hash_file_sample/cpa_hash_file_sample_user.c | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/quickassist/lookaside/access_layer/src/sample_code/functional/sym/hash_file_sample/cpa_hash_file_sample_user.c b/quickassist/lookaside/access_layer/src/sample_code/functional/sym/hash_file_sample/cpa_hash_file_sample_user.c
index 758d7bd..38e0650 100644
--- a/quickassist/lookaside/access_layer/src/sample_code/functional/sym/hash_file_sample/cpa_hash_file_sample_user.c
+++ b/quickassist/lookaside/access_layer/src/sample_code/functional/sym/hash_file_sample/cpa_hash_file_sample_user.c
@@ -65,10 +65,12 @@
* @file cpa_hash_file_sample_user.c
*
*****************************************************************************/
+#include <limits.h>
+#include <unistd.h>
+
#include "cpa_sample_utils.h"
#include "icp_sal_user.h"
-#define FILE_NAME_LENGTH 100
char *gFileName = NULL;
extern CpaStatus hashFileSample(void);
@@ -78,7 +80,7 @@ int gDebugParam = 1;
int main(int argc, const char **argv)
{
CpaStatus stat = CPA_STATUS_SUCCESS;
- char fileToHash[FILE_NAME_LENGTH] = "hash_file_sample";
+ char fileToHash[PATH_MAX] = { 0 };
/* Read in debug setting if present */
if (argc > 1)
@@ -88,6 +90,13 @@ int main(int argc, const char **argv)
PRINT_DBG("Starting Hash File Sample Code App ...\n");
+ if (0 > readlink("/proc/self/exe", fileToHash, sizeof(fileToHash)))
+ {
+ PRINT_ERR("Failed to get path to a binary of self\n");
+ return 1;
+ }
+ gFileName = fileToHash;
+
stat = qaeMemInit();
if (CPA_STATUS_SUCCESS != stat)
{
@@ -102,7 +111,6 @@ int main(int argc, const char **argv)
qaeMemDestroy();
return (int)stat;
}
- gFileName = fileToHash;
stat = hashFileSample();
if (CPA_STATUS_SUCCESS != stat)
--
2.35.1

View File

@ -1,29 +1,22 @@
# SPDX-License-Identifier: MIT # SPDX-License-Identifier: MIT
%global libqat_soversion 2 %global libqat_soversion 3
%global libusdm_soversion 0 %global libusdm_soversion 0
Name: qatlib Name: qatlib
Version: 21.11.0 Version: 22.07.0
Release: 3%{?dist} Release: 1%{?dist}
Summary: Intel QuickAssist user space library Summary: Intel QuickAssist user space library
# The entire source code is released under BSD. # The entire source code is released under BSD.
# For a breakdown of inbound licenses see the INSTALL file. # For a breakdown of inbound licenses see the INSTALL file.
License: BSD and (BSD or GPLv2) License: BSD and (BSD or GPLv2)
URL: https://github.com/intel/%{name} URL: https://github.com/intel/%{name}
Source0: https://github.com/intel/%{name}/archive/%{version}/%{name}-%{version}.tar.gz Source0: https://github.com/intel/%{name}/archive/%{version}/%{name}-%{version}.tar.gz
BuildRequires: systemd gcc make autoconf automake libtool systemd-devel openssl-devel zlib-devel BuildRequires: systemd gcc make autoconf automake libtool systemd-devel openssl-devel zlib-devel yasm
Requires(pre): shadow-utils Requires(pre): shadow-utils
Recommends: qatlib-service
# https://bugzilla.redhat.com/show_bug.cgi?id=1897661 # https://bugzilla.redhat.com/show_bug.cgi?id=1897661
ExcludeArch: %{arm} aarch64 %{power64} s390x i686 ExcludeArch: %{arm} aarch64 %{power64} s390x i686
%{?systemd_requires}
Patch0: 0001-Fix-INSTALL-doc-guidance-for-kernel-to-use-for-compr.patch
Patch1: 0002-Update-INSTALL-doc-with-firmware-load-issue.patch
Patch2: 0003-Update-README.md.patch
Patch3: 0004-Fix-hash_file_sample-return-code.patch
Patch4: 0005-Make-hash_file_sample-to-hash-its-own-binary.patch
%description %description
Intel QuickAssist Technology (Intel QAT) provides hardware acceleration Intel QuickAssist Technology (Intel QAT) provides hardware acceleration
for offloading security, authentication and compression services from the for offloading security, authentication and compression services from the
@ -52,6 +45,15 @@ Requires: %{name}%{?_isa} = %{version}-%{release}
%description tests %description tests
This package contains sample applications that use the Intel QuickAssists APIs. This package contains sample applications that use the Intel QuickAssists APIs.
%package service
Summary: A daemon for qatlib resources management
Requires: %{name}%{?_isa} = %{version}-%{release}
%{?systemd_requires}
%description service
This package contains a daemon that manages QAT resources for the Intel
QuickAssist Technology user space library (qatlib).
%prep %prep
%autosetup -p1 %autosetup -p1
@ -68,18 +70,20 @@ sed -i -e 's! -shared ! -Wl,--as-needed\0!g' libtool
make DESTDIR=%{buildroot} samples-install make DESTDIR=%{buildroot} samples-install
rm %{buildroot}/%{_libdir}/libqat.la rm %{buildroot}/%{_libdir}/libqat.la
rm %{buildroot}/%{_libdir}/libusdm.la rm %{buildroot}/%{_libdir}/libusdm.la
rm %{buildroot}/%{_libdir}/libqat.a
rm %{buildroot}/%{_libdir}/libusdm.a
%pre %pre
getent group qat >/dev/null || groupadd -r qat getent group qat >/dev/null || groupadd -r qat
exit 0 exit 0
%post %post service
%systemd_post qat.service %systemd_post qat.service
%preun %preun service
%systemd_preun qat.service %systemd_preun qat.service
%postun %postun service
%systemd_postun_with_restart qat.service %systemd_postun_with_restart qat.service
%files %files
@ -87,11 +91,6 @@ exit 0
%license LICENSE* %license LICENSE*
%{_libdir}/libqat.so.%{libqat_soversion}* %{_libdir}/libqat.so.%{libqat_soversion}*
%{_libdir}/libusdm.so.%{libusdm_soversion}* %{_libdir}/libusdm.so.%{libusdm_soversion}*
%{_sbindir}/qatmgr
%{_sbindir}/qat_init.sh
%{_unitdir}/qat.service
%{_mandir}/man8/qat_init.sh.8*
%{_mandir}/man8/qatmgr.8*
%files devel %files devel
%{_libdir}/libqat.so %{_libdir}/libqat.so
@ -122,7 +121,19 @@ exit 0
%{_datadir}/qat/calgary32 %{_datadir}/qat/calgary32
%{_datadir}/qat/canterbury %{_datadir}/qat/canterbury
%files service
%{_sbindir}/qatmgr
%{_sbindir}/qat_init.sh
%{_unitdir}/qat.service
%{_mandir}/man8/qatmgr.8*
%{_mandir}/man8/qat_init.sh.8*
%changelog %changelog
* Fri Jul 22 2022 Giovanni Cabiddu <giovanni.cabiddu@intel.com> - 22.07.0-1
- Update to qatlib 22.07
- Removed patches as fixes are present in qatlib 22.07
- Moved qat.service to separate rpm
* Tue Mar 22 2022 Vladis Dronov <vdronov@redhat.com> - 21.11.0-3 * Tue Mar 22 2022 Vladis Dronov <vdronov@redhat.com> - 21.11.0-3
- Fix small issues in qatlib-tests package - Fix small issues in qatlib-tests package
- Update documentation from the upstream - Update documentation from the upstream

View File

@ -1 +1 @@
SHA512 (qatlib-21.11.0.tar.gz) = 740fa282ee540ba74e14ed07b4c79d3af239809c2b6216361b23ccc4787ee378a7a7c336c71087d4a1a59da22db7d5cdef7290ceb7f8e879feaf70f766119dfb SHA512 (qatlib-22.07.0.tar.gz) = 66d7bb66070eaaa11d47637bb56dce1108ab72f66736f82af207c82bd2c552be80d24fcfb840c2cb41df57142559ab4c502fc4365f56db0c3aa994264d5105fa